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_TREASURE,
|
||||||
FLAG_SCENE_CLEAR,
|
FLAG_SCENE_CLEAR,
|
||||||
FLAG_SCENE_COLLECTIBLE,
|
FLAG_SCENE_COLLECTIBLE,
|
||||||
|
FLAG_EVENT_CHECK_INF,
|
||||||
} FlagType;
|
} FlagType;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -1959,7 +1959,8 @@ s32 GiveItemWithoutActor(GlobalContext* globalCtx, s32 getItemId) {
|
|||||||
Player* player = GET_PLAYER(globalCtx);
|
Player* player = GET_PLAYER(globalCtx);
|
||||||
|
|
||||||
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
|
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))) {
|
(!(player->stateFlags1 & 0x20000800))) {
|
||||||
if ((getItemId != GI_NONE)) {
|
if ((getItemId != GI_NONE)) {
|
||||||
player->getItemId = getItemId;
|
player->getItemId = getItemId;
|
||||||
|
@ -243,11 +243,11 @@ void GivePlayerRandoRewardZeldaLightArrowsGift(GlobalContext* globalCtx, Randomi
|
|||||||
!Flags_GetTreasure(globalCtx, 0x1E) && player != NULL && !Player_InBlockingCsMode(globalCtx, player) &&
|
!Flags_GetTreasure(globalCtx, 0x1E) && player != NULL && !Player_InBlockingCsMode(globalCtx, player) &&
|
||||||
globalCtx->sceneLoadFlag == 0) {
|
globalCtx->sceneLoadFlag == 0) {
|
||||||
GetItemEntry getItem = Randomizer_GetItemFromKnownCheck(check, GI_ARROW_LIGHT);
|
GetItemEntry getItem = Randomizer_GetItemFromKnownCheck(check, GI_ARROW_LIGHT);
|
||||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_ARROW_LIGHT);
|
if (player->pendingFlag.flagType == FLAG_NONE && GiveItemWithoutActor(globalCtx, getItem.getItemId)) {
|
||||||
GiveItemWithoutActor(globalCtx, getItemId);
|
player->getItemEntry = getItem;
|
||||||
player->getItemEntry = getItem;
|
player->pendingFlag.flagID = 0x1E;
|
||||||
player->pendingFlag.flagID = 0x1E;
|
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
||||||
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,18 +289,20 @@ void func_80B3CA38(EnXc* this, GlobalContext* globalCtx) {
|
|||||||
|
|
||||||
void GivePlayerRandoRewardSheikSong(EnXc* sheik, GlobalContext* globalCtx, RandomizerCheck check, int sheikType, GetItemID ogSongId) {
|
void GivePlayerRandoRewardSheikSong(EnXc* sheik, GlobalContext* globalCtx, RandomizerCheck check, int sheikType, GetItemID ogSongId) {
|
||||||
Player* player = GET_PLAYER(globalCtx);
|
Player* player = GET_PLAYER(globalCtx);
|
||||||
if (sheik->actor.parent != NULL && sheik->actor.parent->id == player->actor.id &&
|
if (!(gSaveContext.eventChkInf[5] & sheikType)) {
|
||||||
!(gSaveContext.eventChkInf[5] & sheikType)) {
|
GetItemEntry getItemEntry = Randomizer_GetItemFromKnownCheck(check, ogSongId);
|
||||||
gSaveContext.eventChkInf[5] |= sheikType;
|
|
||||||
} else if (!(gSaveContext.eventChkInf[5] & sheikType)) {
|
|
||||||
player->getItemEntry = Randomizer_GetItemFromKnownCheck(check, ogSongId);
|
|
||||||
if (check == RC_SHEIK_AT_TEMPLE && !Flags_GetTreasure(globalCtx, 0x1F)) {
|
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.flagID = 0x1F;
|
||||||
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
||||||
}
|
}
|
||||||
} else if (check != RC_SHEIK_AT_TEMPLE) {
|
} 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->interactRangeActor = spawnedActor;
|
||||||
this->heldActor = spawnedActor;
|
this->heldActor = spawnedActor;
|
||||||
this->getItemId = GI_NONE;
|
this->getItemId = GI_NONE;
|
||||||
|
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
this->unk_3BC.y = spawnedActor->shape.rot.y - this->actor.shape.rot.y;
|
this->unk_3BC.y = spawnedActor->shape.rot.y - this->actor.shape.rot.y;
|
||||||
this->stateFlags1 |= PLAYER_STATE1_11;
|
this->stateFlags1 |= PLAYER_STATE1_11;
|
||||||
}
|
}
|
||||||
@ -6082,6 +6083,9 @@ void Player_SetPendingFlag(Player* this, GlobalContext* globalCtx) {
|
|||||||
case FLAG_SCENE_TREASURE:
|
case FLAG_SCENE_TREASURE:
|
||||||
Flags_SetTreasure(globalCtx, this->pendingFlag.flagID);
|
Flags_SetTreasure(globalCtx, this->pendingFlag.flagID);
|
||||||
break;
|
break;
|
||||||
|
case FLAG_EVENT_CHECK_INF:
|
||||||
|
Flags_SetEventChkInf(globalCtx, this->pendingFlag.flagID);
|
||||||
|
break;
|
||||||
case FLAG_NONE:
|
case FLAG_NONE:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -6135,6 +6139,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) {
|
|||||||
(interactedActor->id == ACTOR_EN_KAREBABA || interactedActor->id == ACTOR_EN_DEKUBABA))) {
|
(interactedActor->id == ACTOR_EN_KAREBABA || interactedActor->id == ACTOR_EN_DEKUBABA))) {
|
||||||
func_8083E4C4(globalCtx, this, &giEntry);
|
func_8083E4C4(globalCtx, this, &giEntry);
|
||||||
this->getItemId = GI_NONE;
|
this->getItemId = GI_NONE;
|
||||||
|
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6154,6 +6159,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) {
|
|||||||
|
|
||||||
func_8083E4C4(globalCtx, this, &giEntry);
|
func_8083E4C4(globalCtx, this, &giEntry);
|
||||||
this->getItemId = GI_NONE;
|
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) &&
|
} else if (CHECK_BTN_ALL(sControlInput->press.button, BTN_A) && !(this->stateFlags1 & PLAYER_STATE1_11) &&
|
||||||
!(this->stateFlags2 & PLAYER_STATE2_10)) {
|
!(this->stateFlags2 & PLAYER_STATE2_10)) {
|
||||||
@ -6586,6 +6592,7 @@ s32 func_8083F7BC(Player* this, GlobalContext* globalCtx) {
|
|||||||
this->stateFlags1 |= PLAYER_STATE1_11;
|
this->stateFlags1 |= PLAYER_STATE1_11;
|
||||||
this->interactRangeActor = &wallPolyActor->actor;
|
this->interactRangeActor = &wallPolyActor->actor;
|
||||||
this->getItemId = GI_NONE;
|
this->getItemId = GI_NONE;
|
||||||
|
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
this->currentYaw = this->actor.wallYaw + 0x8000;
|
this->currentYaw = this->actor.wallYaw + 0x8000;
|
||||||
func_80832224(this);
|
func_80832224(this);
|
||||||
|
|
||||||
@ -12525,6 +12532,7 @@ void func_8084DF6C(GlobalContext* globalCtx, Player* this) {
|
|||||||
this->unk_862 = 0;
|
this->unk_862 = 0;
|
||||||
this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11);
|
this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11);
|
||||||
this->getItemId = GI_NONE;
|
this->getItemId = GI_NONE;
|
||||||
|
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
func_8005B1A4(Gameplay_GetCamera(globalCtx, 0));
|
func_8005B1A4(Gameplay_GetCamera(globalCtx, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12626,7 +12634,7 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) {
|
|||||||
Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900);
|
Audio_PlayFanfare(NA_BGM_ITEM_GET | 0x900);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
//this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
} else {
|
} else {
|
||||||
if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) {
|
if (Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_CLOSING) {
|
||||||
if (this->getItemId == GI_GAUNTLETS_SILVER && !gSaveContext.n64ddFlag) {
|
if (this->getItemId == GI_GAUNTLETS_SILVER && !gSaveContext.n64ddFlag) {
|
||||||
@ -12638,6 +12646,7 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) {
|
|||||||
func_80852FFC(globalCtx, NULL, 8);
|
func_80852FFC(globalCtx, NULL, 8);
|
||||||
}
|
}
|
||||||
this->getItemId = GI_NONE;
|
this->getItemId = GI_NONE;
|
||||||
|
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user