mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-23 06:02:08 -05:00
Fixes LACS/Prelude situation... again.
This commit is contained in:
parent
7cef38a70a
commit
76282830d3
@ -365,6 +365,7 @@ typedef enum {
|
||||
FLAG_SCENE_TREASURE,
|
||||
FLAG_SCENE_CLEAR,
|
||||
FLAG_SCENE_COLLECTIBLE,
|
||||
FLAG_EVENT_CHECK_INF,
|
||||
} FlagType;
|
||||
|
||||
typedef struct {
|
||||
|
@ -1959,7 +1959,8 @@ s32 GiveItemWithoutActor(GlobalContext* globalCtx, s32 getItemId) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
|
||||
if (((player->heldActor != NULL) && (getItemId > GI_NONE) && (getItemId < GI_MAX)) ||
|
||||
if (((player->heldActor != NULL) && ((getItemId > GI_NONE) && (getItemId < GI_MAX)) ||
|
||||
(gSaveContext.n64ddFlag && (getItemId > RG_NONE) && (getItemId < RG_MAX))) ||
|
||||
(!(player->stateFlags1 & 0x20000800))) {
|
||||
if ((getItemId != GI_NONE)) {
|
||||
player->getItemId = getItemId;
|
||||
|
@ -243,13 +243,13 @@ void GivePlayerRandoRewardZeldaLightArrowsGift(GlobalContext* globalCtx, Randomi
|
||||
!Flags_GetTreasure(globalCtx, 0x1E) && player != NULL && !Player_InBlockingCsMode(globalCtx, player) &&
|
||||
globalCtx->sceneLoadFlag == 0) {
|
||||
GetItemEntry getItem = Randomizer_GetItemFromKnownCheck(check, GI_ARROW_LIGHT);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_ARROW_LIGHT);
|
||||
GiveItemWithoutActor(globalCtx, getItemId);
|
||||
if (player->pendingFlag.flagType == FLAG_NONE && GiveItemWithoutActor(globalCtx, getItem.getItemId)) {
|
||||
player->getItemEntry = getItem;
|
||||
player->pendingFlag.flagID = 0x1E;
|
||||
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GivePlayerRandoRewardSariaGift(GlobalContext* globalCtx, RandomizerCheck check) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
@ -289,18 +289,20 @@ void func_80B3CA38(EnXc* this, GlobalContext* globalCtx) {
|
||||
|
||||
void GivePlayerRandoRewardSheikSong(EnXc* sheik, GlobalContext* globalCtx, RandomizerCheck check, int sheikType, GetItemID ogSongId) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
if (sheik->actor.parent != NULL && sheik->actor.parent->id == player->actor.id &&
|
||||
!(gSaveContext.eventChkInf[5] & sheikType)) {
|
||||
gSaveContext.eventChkInf[5] |= sheikType;
|
||||
} else if (!(gSaveContext.eventChkInf[5] & sheikType)) {
|
||||
player->getItemEntry = Randomizer_GetItemFromKnownCheck(check, ogSongId);
|
||||
if (!(gSaveContext.eventChkInf[5] & sheikType)) {
|
||||
GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(check, ogSongId);
|
||||
if (check == RC_SHEIK_AT_TEMPLE && !Flags_GetTreasure(globalCtx, 0x1F)) {
|
||||
if (func_8002F434(&sheik->actor, globalCtx, player->getItemEntry.getItemId, 10000.0f, 100.0f)) {
|
||||
if (func_8002F434(&sheik->actor, globalCtx, getItemEntry.getItemId, 10000.0f, 100.0f)) {
|
||||
player->getItemEntry = getItemEntry;
|
||||
player->pendingFlag.flagID = 0x1F;
|
||||
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
||||
}
|
||||
} else if (check != RC_SHEIK_AT_TEMPLE) {
|
||||
func_8002F434(&sheik->actor, globalCtx, player->getItemEntry.getItemId, 10000.0f, 100.0f);
|
||||
if (func_8002F434(&sheik->actor, globalCtx, getItemEntry.getItemId, 10000.0f, 100.0f)) {
|
||||
player->getItemEntry = getItemEntry;
|
||||
player->pendingFlag.flagID = 0x55;
|
||||
player->pendingFlag.flagType = FLAG_EVENT_CHECK_INF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1602,6 +1602,7 @@ void func_808337D4(GlobalContext* globalCtx, Player* this) {
|
||||
this->interactRangeActor = spawnedActor;
|
||||
this->heldActor = spawnedActor;
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
this->unk_3BC.y = spawnedActor->shape.rot.y - this->actor.shape.rot.y;
|
||||
this->stateFlags1 |= PLAYER_STATE1_11;
|
||||
}
|
||||
@ -6082,6 +6083,9 @@ void Player_SetPendingFlag(Player* this, GlobalContext* globalCtx) {
|
||||
case FLAG_SCENE_TREASURE:
|
||||
Flags_SetTreasure(globalCtx, this->pendingFlag.flagID);
|
||||
break;
|
||||
case FLAG_EVENT_CHECK_INF:
|
||||
Flags_SetEventChkInf(globalCtx, this->pendingFlag.flagID);
|
||||
break;
|
||||
case FLAG_NONE:
|
||||
default:
|
||||
break;
|
||||
@ -6135,6 +6139,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) {
|
||||
(interactedActor->id == ACTOR_EN_KAREBABA || interactedActor->id == ACTOR_EN_DEKUBABA))) {
|
||||
func_8083E4C4(globalCtx, this, &giEntry);
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -6154,6 +6159,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) {
|
||||
|
||||
func_8083E4C4(globalCtx, this, &giEntry);
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
}
|
||||
} else if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) && !(this->stateFlags1 & PLAYER_STATE1_11) &&
|
||||
!(this->stateFlags2 & PLAYER_STATE2_10)) {
|
||||
@ -6586,6 +6592,7 @@ s32 func_8083F7BC(Player* this, GlobalContext* globalCtx) {
|
||||
this->stateFlags1 |= PLAYER_STATE1_11;
|
||||
this->interactRangeActor = &wallPolyActor->actor;
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
this->currentYaw = this->actor.wallYaw + 0x8000;
|
||||
func_80832224(this);
|
||||
|
||||
@ -12525,6 +12532,7 @@ void func_8084DF6C(GlobalContext* globalCtx, Player* this) {
|
||||
this->unk_862 = 0;
|
||||
this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11);
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
func_8005B1A4(Gameplay_GetCamera(globalCtx, 0));
|
||||
}
|
||||
|
||||
@ -12626,7 +12634,7 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) {
|
||||
Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900);
|
||||
}
|
||||
}
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
//this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
} else {
|
||||
if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->getItemId == GI_GAUNTLETS_SILVER && !gSaveContext.n64ddFlag) {
|
||||
@ -12638,6 +12646,7 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) {
|
||||
func_80852FFC(globalCtx, NULL, 8);
|
||||
}
|
||||
this->getItemId = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user