mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
merge master
This commit is contained in:
@@ -87,8 +87,8 @@
|
||||
<Animation Name="object_boj_Anim_011F84" Offset="0x11F84" />
|
||||
<Animation Name="object_boj_Anim_0128F4" Offset="0x128F4" />
|
||||
<Animation Name="object_boj_Anim_012E84" Offset="0x12E84" />
|
||||
<DList Name="object_boj_DL_013380" Offset="0x13380" />
|
||||
<Texture Name="object_boj_TLUT_0134C0" OutName="tlut_0134C0" Format="rgba16" Width="16" Height="16" Offset="0x134C0" />
|
||||
<Texture Name="object_boj_Tex_0136C0" OutName="tex_0136C0" Format="ci8" Width="16" Height="16" Offset="0x136C0" />
|
||||
<DList Name="gBombShopBagDL" Offset="0x13380" />
|
||||
<Texture Name="gBombShopBagTLUT" OutName="bomb_shop_bag_tlut" Format="rgba16" Width="16" Height="16" Offset="0x134C0" />
|
||||
<Texture Name="gBombShopBagTex" OutName="bomb_shop_bag" Format="ci8" Width="16" Height="16" Offset="0x136C0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ typedef enum {
|
||||
/* 2 */ PLAYER_ENV_TIMER_UNDERWATER_FLOOR,
|
||||
/* 3 */ PLAYER_ENV_TIMER_SWIMMING,
|
||||
/* 4 */ PLAYER_ENV_TIMER_UNDERWATER_FREE
|
||||
} PlayerEnvTimer;
|
||||
} PlayerEnvTimerType;
|
||||
|
||||
typedef enum PlayerActionParam {
|
||||
/* -1 */ PLAYER_AP_MINUS1 = -1,
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define Z64SAVE_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "z64item.h"
|
||||
#include "z64math.h"
|
||||
#include "z64item.h"
|
||||
#include "os.h"
|
||||
|
||||
@@ -4567,8 +4567,7 @@ beginseg
|
||||
name "ovl_En_Nimotsu"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Nimotsu/z_en_nimotsu.o"
|
||||
include "build/data/ovl_En_Nimotsu/ovl_En_Nimotsu.data.o"
|
||||
include "build/data/ovl_En_Nimotsu/ovl_En_Nimotsu.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Nimotsu/ovl_En_Nimotsu_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -5097,8 +5096,7 @@ beginseg
|
||||
name "ovl_Obj_Swprize"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Swprize/z_obj_swprize.o"
|
||||
include "build/data/ovl_Obj_Swprize/ovl_Obj_Swprize.data.o"
|
||||
include "build/data/ovl_Obj_Swprize/ovl_Obj_Swprize.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Swprize/ovl_Obj_Swprize_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -192,7 +192,7 @@ s16 sExtraItemBases[] = {
|
||||
|
||||
s16 sEnvTimerType = PLAYER_ENV_TIMER_NONE;
|
||||
s16 sEnvTimerActive = false;
|
||||
s16 sPostmanBunnyHoodState = 0;
|
||||
s16 sPostmanBunnyHoodState = POSTMAN_MINIGAME_BUNNY_HOOD_OFF;
|
||||
OSTime sTimerPausedOsTime = 0;
|
||||
OSTime sBottleTimerPausedOsTime = 0;
|
||||
OSTime D_801BF8F8[] = {
|
||||
|
||||
@@ -894,12 +894,12 @@ void func_80144A94(SramContext* sramCtx) {
|
||||
gSaveContext.cycleSceneFlags[i].collectible = gSaveContext.save.permanentSceneFlags[i].collectible;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.timerStates); i++) {
|
||||
for (i = 0; i < TIMER_ID_MAX; i++) {
|
||||
gSaveContext.timerStates[i] = TIMER_STATE_OFF;
|
||||
gSaveContext.timerCurTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerTimeLimits[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerStartOsTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerPausedOsTimes[i] = 0;
|
||||
}
|
||||
|
||||
@@ -969,12 +969,12 @@ void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||
gSaveContext.cycleSceneFlags[i].collectible = gSaveContext.save.permanentSceneFlags[i].collectible;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.timerStates); i++) {
|
||||
for (i = 0; i < TIMER_ID_MAX; i++) {
|
||||
gSaveContext.timerStates[i] = TIMER_STATE_OFF;
|
||||
gSaveContext.timerCurTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerTimeLimits[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerStartOsTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerPausedOsTimes[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -502,6 +502,7 @@ void EnMttag_Init(Actor* thisx, PlayState* play) {
|
||||
|
||||
void EnMttag_Destroy(Actor* thisx, PlayState* play) {
|
||||
EnMttag* this = THIS;
|
||||
|
||||
if (gSaveContext.timerStates[TIMER_ID_MINIGAME_2] != TIMER_STATE_6) {
|
||||
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
|
||||
}
|
||||
@@ -509,5 +510,6 @@ void EnMttag_Destroy(Actor* thisx, PlayState* play) {
|
||||
|
||||
void EnMttag_Update(Actor* thisx, PlayState* play) {
|
||||
EnMttag* this = THIS;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_nimotsu.h"
|
||||
#include "assets/objects/object_boj/object_boj.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
|
||||
@@ -15,7 +16,8 @@ void EnNimotsu_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnNimotsu_Update(Actor* thisx, PlayState* play);
|
||||
void EnNimotsu_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
#if 0
|
||||
void EnNimotsu_UpdateCollision(EnNimotsu* this, PlayState* play);
|
||||
|
||||
const ActorInit En_Nimotsu_InitVars = {
|
||||
ACTOR_EN_NIMOTSU,
|
||||
ACTORCAT_PROP,
|
||||
@@ -28,25 +30,93 @@ const ActorInit En_Nimotsu_InitVars = {
|
||||
(ActorFunc)EnNimotsu_Draw,
|
||||
};
|
||||
|
||||
// static ColliderCylinderInit sCylinderInit = {
|
||||
static ColliderCylinderInit D_80BE1FB0 = {
|
||||
{ COLTYPE_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, OC2_TYPE_2, COLSHAPE_CYLINDER, },
|
||||
{ ELEMTYPE_UNK4, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, TOUCH_NONE | TOUCH_SFX_NORMAL, BUMP_NONE, OCELEM_ON, },
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{
|
||||
COLTYPE_NONE,
|
||||
AT_NONE,
|
||||
AC_NONE,
|
||||
OC1_ON | OC1_TYPE_ALL,
|
||||
OC2_TYPE_2,
|
||||
COLSHAPE_CYLINDER,
|
||||
},
|
||||
{
|
||||
ELEMTYPE_UNK4,
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
TOUCH_NONE | TOUCH_SFX_NORMAL,
|
||||
BUMP_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 10, 30, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
#endif
|
||||
void EnNimotsu_UpdateCollision(EnNimotsu* this, PlayState* play) {
|
||||
Collider_UpdateCylinder(&this->actor, &this->collider);
|
||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
||||
Actor_UpdateBgCheckInfo(play, &this->actor, 32.0f, 30.0f, 0.0f, 4);
|
||||
}
|
||||
|
||||
extern ColliderCylinderInit D_80BE1FB0;
|
||||
void EnNimotsu_Init(Actor* thisx, PlayState* play) {
|
||||
EnNimotsu* this = THIS;
|
||||
|
||||
extern UNK_TYPE D_06013380;
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Nimotsu/func_80BE1C80.s")
|
||||
this->timer = 10;
|
||||
this->actor.gravity = -0.5f;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Nimotsu/EnNimotsu_Init.s")
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Nimotsu/EnNimotsu_Destroy.s")
|
||||
void EnNimotsu_Destroy(Actor* thisx, PlayState* play) {
|
||||
EnNimotsu* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Nimotsu/EnNimotsu_Update.s")
|
||||
Collider_DestroyCylinder(play, &this->collider);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Nimotsu/EnNimotsu_Draw.s")
|
||||
void EnNimotsu_Update(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
EnNimotsu* this = THIS;
|
||||
Vec3f dustPosition;
|
||||
|
||||
Actor_MoveWithGravity(&this->actor);
|
||||
|
||||
if (!(this->dustDone & 1) && (this->actor.bgCheckFlags & 1)) {
|
||||
if (DECR(this->timer) == 0) {
|
||||
this->dustDone |= 1;
|
||||
}
|
||||
|
||||
if ((play->state.frames % 3) == 0) {
|
||||
dustPosition.x = this->actor.world.pos.x + randPlusMinusPoint5Scaled(15.0f);
|
||||
dustPosition.y = this->actor.world.pos.y;
|
||||
dustPosition.z = this->actor.world.pos.z + randPlusMinusPoint5Scaled(15.0f);
|
||||
Actor_SpawnFloorDustRing(play, &this->actor, &dustPosition, 20.0f, 0, 2.0f, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
EnNimotsu_UpdateCollision(this, play);
|
||||
}
|
||||
|
||||
void EnNimotsu_Draw(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
EnNimotsu* this = THIS;
|
||||
Vec3f position;
|
||||
Vec3f scale;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
func_8012C28C(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &gBombShopBagDL);
|
||||
func_8012C2DC(play->state.gfxCtx);
|
||||
|
||||
position.x = this->actor.world.pos.x + 7.0f;
|
||||
position.y = this->actor.world.pos.y;
|
||||
position.z = this->actor.world.pos.z + 2.0f;
|
||||
|
||||
scale.x = 0.2f;
|
||||
scale.y = 0.2f;
|
||||
scale.z = 0.2f;
|
||||
|
||||
func_800BC620(&position, &scale, 255, play);
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,10 @@ struct EnNimotsu;
|
||||
|
||||
typedef struct EnNimotsu {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ char unk_144[0x98];
|
||||
/* 0x144 */ UNK_TYPE1 unk_144[0x48];
|
||||
/* 0x18C */ ColliderCylinder collider;
|
||||
/* 0x1D8 */ u16 dustDone;
|
||||
/* 0x1DA */ s16 timer;
|
||||
} EnNimotsu; // size = 0x1DC
|
||||
|
||||
extern const ActorInit En_Nimotsu_InitVars;
|
||||
|
||||
@@ -1542,7 +1542,7 @@ void EnSuttari_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
|
||||
} else {
|
||||
func_8012C28C(play->state.gfxCtx);
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
gSPDisplayList(POLY_OPA_DISP++, object_boj_DL_013380);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBombShopBagDL);
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ static s32 sSwampTargetActorListLengths[] = {
|
||||
};
|
||||
|
||||
static Vec3f sSwampPlayerPos = { 0.0f, 10.0f, 140.0f };
|
||||
static Vec3f sTownFierceDietyPlayerPos = { -20.0f, 20.0f, 198.0f };
|
||||
static Vec3f sTownFierceDeityPlayerPos = { -20.0f, 20.0f, 198.0f };
|
||||
static Vec3f sTownPlayerPos = { -20.0f, 40.0f, 175.0f };
|
||||
|
||||
/**
|
||||
@@ -1156,7 +1156,7 @@ void EnSyatekiMan_Swamp_AddBonusPoints(EnSyatekiMan* this, PlayState* play) {
|
||||
this->actionFunc = EnSyatekiMan_Swamp_EndGame;
|
||||
sBonusTimer = 0;
|
||||
} else if (sBonusTimer > 10) {
|
||||
gSaveContext.timerStopTimes[TIMER_ID_MINIGAME_1] += 100;
|
||||
gSaveContext.timerStopTimes[TIMER_ID_MINIGAME_1] += SECONDS_TO_TIMER(1);
|
||||
play->interfaceCtx.unk_25C += 10;
|
||||
this->score += 10;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
|
||||
@@ -1171,7 +1171,7 @@ void EnSyatekiMan_Town_MovePlayerAndSayHighScore(EnSyatekiMan* this, PlayState*
|
||||
Vec3f targetPlayerPos;
|
||||
|
||||
if (gSaveContext.save.playerForm == PLAYER_FORM_FIERCE_DEITY) {
|
||||
targetPlayerPos = sTownFierceDietyPlayerPos;
|
||||
targetPlayerPos = sTownFierceDeityPlayerPos;
|
||||
} else {
|
||||
targetPlayerPos = sTownPlayerPos;
|
||||
}
|
||||
@@ -1198,7 +1198,7 @@ void EnSyatekiMan_Town_StartGame(EnSyatekiMan* this, PlayState* play) {
|
||||
|
||||
if (sGameStartTimer == 30) {
|
||||
if (player->transformation == PLAYER_FORM_FIERCE_DEITY) {
|
||||
player->actor.world.pos = sTownFierceDietyPlayerPos;
|
||||
player->actor.world.pos = sTownFierceDeityPlayerPos;
|
||||
} else {
|
||||
player->actor.world.pos = sTownPlayerPos;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ void ObjRoomtimer_Init(Actor* thisx, PlayState* play) {
|
||||
void ObjRoomtimer_Destroy(Actor* thisx, PlayState* play) {
|
||||
ObjRoomtimer* this = THIS;
|
||||
|
||||
if (this->actor.params != 0x1FF && gSaveContext.timerStates[TIMER_ID_MINIGAME_2] >= TIMER_STATE_START) {
|
||||
if ((this->actor.params != 0x1FF) && (gSaveContext.timerStates[TIMER_ID_MINIGAME_2] >= TIMER_STATE_START)) {
|
||||
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,7 @@ void func_80973D3C(ObjRoomtimer* this, PlayState* play) {
|
||||
}
|
||||
ActorCutscene_SetIntentToPlay(this->actor.cutscene);
|
||||
this->actionFunc = func_80973DE0;
|
||||
} else if (this->actor.params != 0x1FF && gSaveContext.timerStates[TIMER_ID_MINIGAME_2] == TIMER_STATE_OFF) {
|
||||
} else if ((this->actor.params != 0x1FF) && (gSaveContext.timerStates[TIMER_ID_MINIGAME_2] == TIMER_STATE_OFF)) {
|
||||
play_sound(NA_SE_OC_ABYSS);
|
||||
func_80169EFC(&play->state);
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
|
||||
@@ -14,12 +14,15 @@ void ObjSwprize_Init(Actor* thisx, PlayState* play);
|
||||
void ObjSwprize_Destroy(Actor* thisx, PlayState* play);
|
||||
void ObjSwprize_Update(Actor* thisx, PlayState* play);
|
||||
|
||||
void ObjSwprize_DoNothing(ObjSwprize* this, PlayState* play);
|
||||
void func_80C25654(ObjSwprize* this, PlayState* play);
|
||||
void func_80C25640(ObjSwprize* this);
|
||||
void func_80C25698(ObjSwprize* this);
|
||||
void func_80C256AC(ObjSwprize* this, PlayState* play);
|
||||
void func_80C25710(ObjSwprize* this);
|
||||
void func_80C2572C(ObjSwprize* this, PlayState* play);
|
||||
void func_80C25794(ObjSwprize* this, PlayState* play);
|
||||
void ObjSwprize_SetupDoNothing(ObjSwprize* this);
|
||||
|
||||
#if 0
|
||||
const ActorInit Obj_Swprize_InitVars = {
|
||||
ACTOR_OBJ_SWPRIZE,
|
||||
ACTORCAT_PROP,
|
||||
@@ -32,30 +35,113 @@ const ActorInit Obj_Swprize_InitVars = {
|
||||
(ActorFunc)NULL,
|
||||
};
|
||||
|
||||
#endif
|
||||
s16 D_80C257F0[] = { 2, 0x14, 1, 8 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25360.s")
|
||||
s16 D_80C257F8[] = { -0x888, 0, 0x888 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C253D0.s")
|
||||
void func_80C25360(ObjSwprize* this, Vec3f* vec) {
|
||||
Matrix_Push();
|
||||
Matrix_RotateYS(this->actor.shape.rot.y, MTXMODE_NEW);
|
||||
Matrix_RotateXS(this->actor.shape.rot.x, MTXMODE_APPLY);
|
||||
Matrix_RotateZS(this->actor.shape.rot.z, MTXMODE_APPLY);
|
||||
Matrix_MultVecY(1.0f, vec);
|
||||
Matrix_Pop();
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/ObjSwprize_Init.s")
|
||||
void func_80C253D0(ObjSwprize* this, PlayState* play) {
|
||||
Actor* thisx = &this->actor;
|
||||
s32 i;
|
||||
Actor* collectible;
|
||||
Vec3f sp78;
|
||||
s32 type = OBJ_SWPRIZE_GET_TYPE(thisx);
|
||||
s32 temp_s0 = D_80C257F0[type];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/ObjSwprize_Destroy.s")
|
||||
func_80C25360(this, &sp78);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25640.s")
|
||||
if (type == 2) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
collectible = Item_DropCollectible(play, &thisx->world.pos, temp_s0);
|
||||
if (collectible != NULL) {
|
||||
if (sp78.y < 0.98f) {
|
||||
collectible->velocity.y = (sp78.y + 1.0f) * 4.0f;
|
||||
collectible->speedXZ = (2.0f * (1.0f - fabsf(sp78.y))) + 2.0f;
|
||||
collectible->world.rot.y = Math_FAtan2F(sp78.z, sp78.x) + D_80C257F8[i];
|
||||
} else {
|
||||
collectible->world.rot.y = i * (0x10000 / 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
collectible = Item_DropCollectible(play, &thisx->world.pos, temp_s0);
|
||||
if ((collectible != NULL) && (sp78.y < 0.98f)) {
|
||||
collectible->velocity.y = (sp78.y + 1.0f) * 4.0f;
|
||||
collectible->speedXZ = (2.0f * (1.0f - fabsf(sp78.y))) + 2.0f;
|
||||
collectible->world.rot.y = Math_FAtan2F(sp78.z, sp78.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25654.s")
|
||||
void ObjSwprize_Init(Actor* thisx, PlayState* play) {
|
||||
ObjSwprize* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25698.s")
|
||||
if (Flags_GetSwitch(play, OBJ_SWPRIZE_GET_SWITCH_FLAG(&this->actor))) {
|
||||
ObjSwprize_SetupDoNothing(this);
|
||||
} else {
|
||||
func_80C25640(this);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C256AC.s")
|
||||
void ObjSwprize_Destroy(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25710.s")
|
||||
void func_80C25640(ObjSwprize* this) {
|
||||
this->actionFunc = func_80C25654;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C2572C.s")
|
||||
void func_80C25654(ObjSwprize* this, PlayState* play) {
|
||||
if (Flags_GetSwitch(play, OBJ_SWPRIZE_GET_SWITCH_FLAG(&this->actor))) {
|
||||
func_80C25698(this);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25780.s")
|
||||
void func_80C25698(ObjSwprize* this) {
|
||||
this->actionFunc = func_80C256AC;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/func_80C25794.s")
|
||||
void func_80C256AC(ObjSwprize* this, PlayState* play) {
|
||||
if (ActorCutscene_GetCanPlayNext(this->actor.cutscene)) {
|
||||
ActorCutscene_StartAndSetUnkLinkFields(this->actor.cutscene, &this->actor);
|
||||
func_80C253D0(this, play);
|
||||
func_80C25710(this);
|
||||
} else {
|
||||
ActorCutscene_SetIntentToPlay(this->actor.cutscene);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Swprize/ObjSwprize_Update.s")
|
||||
void func_80C25710(ObjSwprize* this) {
|
||||
this->timer = 40;
|
||||
this->actionFunc = func_80C2572C;
|
||||
}
|
||||
|
||||
void func_80C2572C(ObjSwprize* this, PlayState* play) {
|
||||
if (this->timer > 0) {
|
||||
this->timer--;
|
||||
if (this->timer == 0) {
|
||||
ActorCutscene_Stop(this->actor.cutscene);
|
||||
ObjSwprize_SetupDoNothing(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ObjSwprize_SetupDoNothing(ObjSwprize* this) {
|
||||
this->actionFunc = ObjSwprize_DoNothing;
|
||||
}
|
||||
|
||||
void ObjSwprize_DoNothing(ObjSwprize* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void ObjSwprize_Update(Actor* thisx, PlayState* play) {
|
||||
ObjSwprize* this = THIS;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#define OBJ_SWPRIZE_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F)
|
||||
#define OBJ_SWPRIZE_GET_TYPE(thisx) (((thisx)->params >> 8) & 3)
|
||||
|
||||
struct ObjSwprize;
|
||||
|
||||
typedef void (*ObjSwprizeActionFunc)(struct ObjSwprize*, PlayState*);
|
||||
@@ -10,7 +13,7 @@ typedef void (*ObjSwprizeActionFunc)(struct ObjSwprize*, PlayState*);
|
||||
typedef struct ObjSwprize {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ ObjSwprizeActionFunc actionFunc;
|
||||
/* 0x148 */ char unk_148[0x4];
|
||||
/* 0x148 */ s16 timer;
|
||||
} ObjSwprize; // size = 0x14C
|
||||
|
||||
extern const ActorInit Obj_Swprize_InitVars;
|
||||
|
||||
@@ -507,12 +507,12 @@ void MapSelect_UpdateMenu(MapSelectState* this) {
|
||||
|
||||
if (this->verticalInputAccumulator == 0) {
|
||||
if (CHECK_BTN_ALL(controller1->press.button, BTN_A) || CHECK_BTN_ALL(controller1->press.button, BTN_START)) {
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.timerPausedOsTimes); i++) {
|
||||
for (i = 0; i < TIMER_ID_MAX; i++) {
|
||||
gSaveContext.timerStates[i] = TIMER_STATE_OFF;
|
||||
gSaveContext.timerCurTimes[i] = 0;
|
||||
gSaveContext.timerCurTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerTimeLimits[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerStartOsTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = 0;
|
||||
gSaveContext.timerStopTimes[i] = SECONDS_TO_TIMER(0);
|
||||
gSaveContext.timerPausedOsTimes[i] = 0;
|
||||
}
|
||||
gSaveContext.minigameState = 0;
|
||||
|
||||
@@ -16061,7 +16061,7 @@
|
||||
0x80BE16B4:("EnTab_PostLimbDraw",),
|
||||
0x80BE1704:("EnTab_TransformLimbDraw",),
|
||||
0x80BE1810:("EnTab_Draw",),
|
||||
0x80BE1C80:("func_80BE1C80",),
|
||||
0x80BE1C80:("EnNimotsu_UpdateCollision",),
|
||||
0x80BE1CEC:("EnNimotsu_Init",),
|
||||
0x80BE1D5C:("EnNimotsu_Destroy",),
|
||||
0x80BE1D88:("EnNimotsu_Update",),
|
||||
@@ -17125,8 +17125,8 @@
|
||||
0x80C256AC:("func_80C256AC",),
|
||||
0x80C25710:("func_80C25710",),
|
||||
0x80C2572C:("func_80C2572C",),
|
||||
0x80C25780:("func_80C25780",),
|
||||
0x80C25794:("func_80C25794",),
|
||||
0x80C25780:("ObjSwprize_SetupDoNothing",),
|
||||
0x80C25794:("ObjSwprize_DoNothing",),
|
||||
0x80C257A4:("ObjSwprize_Update",),
|
||||
0x80C258A0:("func_80C258A0",),
|
||||
0x80C2590C:("func_80C2590C",),
|
||||
|
||||
@@ -9920,7 +9920,7 @@
|
||||
0x809C9464:("sSwampTargetActorLists","UNK_PTR","",0x4),
|
||||
0x809C946C:("sSwampTargetActorListLengths","UNK_TYPE1","",0x1),
|
||||
0x809C9474:("sSwampPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C9480:("sTownFierceDietyPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C9480:("sTownFierceDeityPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C948C:("sTownPlayerPos","UNK_TYPE4","",0x4),
|
||||
0x809C9498:("sGameStartTimer","s16","",0x2),
|
||||
0x809C949C:("sHasSpawnedGuaysForThisWave","UNK_TYPE2","",0x2),
|
||||
|
||||
@@ -483,6 +483,9 @@ wordReplace = {
|
||||
"func_80169E6C": "Play_SetupRespawnPoint",
|
||||
"func_8016A0AC": "Play_IsUnderwater",
|
||||
"func_801690CC": "Play_InCsMode",
|
||||
"func_8010E9F0": "Interface_StartTimer",
|
||||
"func_8010EA9C": "Interface_StartPostmanTimer",
|
||||
"func_80121F94": "Interface_Destroy",
|
||||
"Interface_ChangeAlpha": "Interface_SetHudVisibility",
|
||||
"func_80112B40": "Interface_LoadItemIconImpl",
|
||||
"func_80112BE4": "Interface_LoadItemIcon",
|
||||
@@ -702,6 +705,7 @@ wordReplace = {
|
||||
"player->unk_394": "player->csMode",
|
||||
"player->swordQuads": "player->meleeWeaponQuads",
|
||||
"player->blureEffectIndex": "player->meleeWeaponEffectIndex",
|
||||
"player->unk_AD8": "player->underwaterTimer",
|
||||
"player->swordAnimation": "player->meleeWeaponAnimation",
|
||||
"player->swordState": "player->meleeWeaponState",
|
||||
"player->swordInfo": "player->meleeWeaponInfo",
|
||||
@@ -731,6 +735,15 @@ wordReplace = {
|
||||
"play->actorCtx.unk4": "play->actorCtx.lensMaskSize",
|
||||
"play->nextEntranceIndex": "play->nextEntrance",
|
||||
|
||||
"gSaveContext.unk_3DC8": "gSaveContext.timerOsTime",
|
||||
"gSaveContext.unk_3DD0": "gSaveContext.timerStates",
|
||||
"gSaveContext.unk_3DD7": "gSaveContext.timerDirections",
|
||||
"gSaveContext.unk_3DE0": "gSaveContext.timerCurTimes",
|
||||
"gSaveContext.unk_3E18": "gSaveContext.timerTimeLimits",
|
||||
"gSaveContext.unk_3E50": "gSaveContext.timerStartOsTimes",
|
||||
"gSaveContext.unk_3E88": "gSaveContext.timerStopTimes",
|
||||
"gSaveContext.unk_3EC0": "gSaveContext.timerPausedOsTimes",
|
||||
|
||||
"play->sceneLoadFlag": "play->transitionTrigger",
|
||||
"play->unk_18B4A": "play->transitionMode",
|
||||
"play->unk_1887F": "play->transitionType",
|
||||
|
||||
@@ -1223,10 +1223,6 @@ D_06008C40 = 0x06008C40;
|
||||
D_060001E4 = 0x060001E4;
|
||||
D_06001EE8 = 0x06001EE8;
|
||||
|
||||
// ovl_En_Nimotsu
|
||||
|
||||
D_06013380 = 0x06013380;
|
||||
|
||||
// ovl_En_Nwc
|
||||
|
||||
D_060000E8 = 0x060000E8;
|
||||
|
||||
Reference in New Issue
Block a user