1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-26 06:36:19 +00:00

Fix misc 22 (#1971)

* remove trailing whitespace

* fix/docbug about dright for next page of fault menu

* // size = ...; -> // size = ...

* access `ColliderJntSph.elements` as an array

* fixup doc in PreRender.c

* empty line after decl

* gdSPDefLights1 xyz arguments for direction are signed 8bit values

* doc bug of bad use of free in EffDust actor

* decimal for Actor.colorFilterTimer

* shopItemEntries -> sShopItemEntries

* HEISHI4_AT_KAKRIKO_ENTRANCE -> HEISHI4_AT_KAKARIKO_ENTRANCE

* format
This commit is contained in:
Dragorn421 2024-06-25 00:39:08 +02:00 committed by GitHub
parent 4dc70fefee
commit 2ce4742bf6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 49 additions and 42 deletions

View file

@ -428,7 +428,7 @@ typedef enum {
/** /**
* Unmute all sequence players * Unmute all sequence players
* *
* @param restartNotes (s32) if set to 1, then notes with the `MUTE_BEHAVIOR_STOP_SAMPLES` flag set * @param restartNotes (s32) if set to 1, then notes with the `MUTE_BEHAVIOR_STOP_SAMPLES` flag set
* are marked as finished for all seqPlayers * are marked as finished for all seqPlayers
*/ */
#define AUDIOCMD_GLOBAL_UNMUTE(restartNotes) \ #define AUDIOCMD_GLOBAL_UNMUTE(restartNotes) \

View file

@ -88,7 +88,7 @@ typedef enum {
/* 1 */ ANIMTAPER_ACCEL /* 1 */ ANIMTAPER_ACCEL
} AnimationTapers; } AnimationTapers;
// This flag seems like it was intended to be paired with `ANIM_FLAG_UPDATE_Y` to control // This flag seems like it was intended to be paired with `ANIM_FLAG_UPDATE_Y` to control
// XZ movement based on the current animation. // XZ movement based on the current animation.
// However, this flag is not checked by the Skelanime system. XZ movement will always occur // However, this flag is not checked by the Skelanime system. XZ movement will always occur
// regardless of the current state of this flag, as long as the "Actor Move" Anim Task is in use. // regardless of the current state of this flag, as long as the "Actor Move" Anim Task is in use.
@ -102,16 +102,16 @@ typedef enum {
#define ANIM_FLAG_UPDATE_Y (1 << 1) #define ANIM_FLAG_UPDATE_Y (1 << 1)
// (player-only) Related to scaling an animation from/to child/adult // (player-only) Related to scaling an animation from/to child/adult
#define ANIM_FLAG_PLAYER_2 (1 << 2) #define ANIM_FLAG_PLAYER_2 (1 << 2)
// (player-only) Call AnimTaskQueue_AddActorMove // (player-only) Call AnimTaskQueue_AddActorMove
#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3) #define ANIM_FLAG_PLAYER_SETMOVE (1 << 3)
// //
#define ANIM_FLAG_NO_MOVE (1 << 4) #define ANIM_FLAG_NO_MOVE (1 << 4)
// (player-only) // (player-only)
#define ANIM_FLAG_PLAYER_7 (1 << 7) #define ANIM_FLAG_PLAYER_7 (1 << 7)
typedef struct SkelAnime { typedef struct SkelAnime {
/* 0x00 */ u8 limbCount; // Number of limbs in the skeleton /* 0x00 */ u8 limbCount; // Number of limbs in the skeleton

View file

@ -786,7 +786,7 @@ typedef struct Player {
/* 0x0450 */ Vec3f unk_450; /* 0x0450 */ Vec3f unk_450;
/* 0x045C */ Vec3f unk_45C; /* 0x045C */ Vec3f unk_45C;
/* 0x0468 */ char unk_468[0x002]; /* 0x0468 */ char unk_468[0x002];
/* 0x046A */ union { /* 0x046A */ union {
s16 haltActorsDuringCsAction; // If true, halt actors belonging to certain categories during a `csAction` s16 haltActorsDuringCsAction; // If true, halt actors belonging to certain categories during a `csAction`
s16 slidingDoorBgCamIndex; // `BgCamIndex` used during a sliding door cutscene s16 slidingDoorBgCamIndex; // `BgCamIndex` used during a sliding door cutscene
} cv; // "Cutscene Variable": context dependent variable that has different meanings depending on what function is called } cv; // "Cutscene Variable": context dependent variable that has different meanings depending on what function is called
@ -848,11 +848,11 @@ typedef struct Player {
/* 0x0847 */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins. /* 0x0847 */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins.
/* 0x084B */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`. /* 0x084B */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`.
/* 0x084F */ union { /* 0x084F */ union {
s8 actionVar1; s8 actionVar1;
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running } av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
/* 0x0850 */ union { /* 0x0850 */ union {
s16 actionVar2; s16 actionVar2;
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running } av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running

View file

@ -88,7 +88,7 @@ typedef struct {
/* 0x060 */ Mtx lookAt; /* 0x060 */ Mtx lookAt;
/* 0x0A0 */ void* texture; /* 0x0A0 */ void* texture;
/* 0x0A8 */ Mtx modelView[2][3]; /* 0x0A8 */ Mtx modelView[2][3];
} TransitionCircle; // size = 0x228; } TransitionCircle; // size = 0x228
typedef struct { typedef struct {
/* 0x000 */ Color_RGBA8_u32 color; /* 0x000 */ Color_RGBA8_u32 color;
@ -99,6 +99,6 @@ typedef struct {
/* 0x018 */ Mtx projection; /* 0x018 */ Mtx projection;
/* 0x058 */ s32 frame; /* 0x058 */ s32 frame;
/* 0x060 */ Mtx modelView[2][3]; /* 0x060 */ Mtx modelView[2][3];
} TransitionTriforce; // size = 0x1E0; } TransitionTriforce; // size = 0x1E0
#endif #endif

View file

@ -659,11 +659,12 @@ void PreRender_AntiAliasFilter(PreRender* this, s32 x, s32 y) {
} }
} }
// The background color is determined by averaging the penultimate minimum and maximum pixels, and subtracting the // The background color is determined by adding the penultimate minimum and maximum pixels, and subtracting the
// ForeGround color: // ForeGround color:
// BackGround = (pMax + pMin) - (ForeGround) * 2 // BackGround = (pMax + pMin) - ForeGround
// OutputColor = cvg * ForeGround + (1.0 - cvg) * BackGround // OutputColor = cvg * ForeGround + (1.0 - cvg) * BackGround
// = ForeGround + (1.0 - cvg) * (BackGround - ForeGround)
invCvg = 7 - buffCvg[7]; invCvg = 7 - buffCvg[7];
outR = buffR[7] + ((s32)(invCvg * (pmaxR + pminR - (buffR[7] * 2)) + 4) >> 3); outR = buffR[7] + ((s32)(invCvg * (pmaxR + pminR - (buffR[7] * 2)) + 4) >> 3);
outG = buffG[7] + ((s32)(invCvg * (pmaxG + pminG - (buffG[7] * 2)) + 4) >> 3); outG = buffG[7] + ((s32)(invCvg * (pmaxG + pminG - (buffG[7] * 2)) + 4) >> 3);

View file

@ -35,7 +35,7 @@
* - End Screen * - End Screen
* This page informs you that there are no more pages to display. * This page informs you that there are no more pages to display.
* *
* To navigate the pages, START and A may be used to advance to the next page, and L toggles whether to * To navigate the pages, DPad-Right or A may be used to advance to the next page, and L toggles whether to
* automatically scroll to the next page after some time has passed. * automatically scroll to the next page after some time has passed.
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen. * DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
* DPad-Down disables sending fault pages over osSyncPrintf. * DPad-Down disables sending fault pages over osSyncPrintf.
@ -911,6 +911,8 @@ void Fault_DrawMemDump(uintptr_t pc, uintptr_t sp, uintptr_t cLeftJump, uintptr_
} while (input->press.button == 0); } while (input->press.button == 0);
// Move to next page // Move to next page
//! @bug DPad-Right does not move to the next page, unlike when on any other page
// START moving to the next page is unique to this page.
if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->cur.button, BTN_A)) { if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->cur.button, BTN_A)) {
return; return;
} }

View file

@ -462,6 +462,7 @@ void Graph_ThreadEntry(void* arg0) {
if (gameState == NULL) { if (gameState == NULL) {
#if OOT_DEBUG #if OOT_DEBUG
char faultMsg[0x50]; char faultMsg[0x50];
PRINTF("確保失敗\n"); // "Failure to secure" PRINTF("確保失敗\n"); // "Failure to secure"
sprintf(faultMsg, "CLASS SIZE= %d bytes", size); sprintf(faultMsg, "CLASS SIZE= %d bytes", size);

View file

@ -1785,7 +1785,7 @@ void Player_DrawPauseImpl(PlayState* play, void* gameplayKeep, void* linkObject,
// Note: the viewport x and y values are overwritten below, before usage // Note: the viewport x and y values are overwritten below, before usage
static Vp viewport = { (PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0, static Vp viewport = { (PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0,
(PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0 }; (PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0 };
static Lights1 lights1 = gdSPDefLights1(80, 80, 80, 255, 255, 255, 84, 84, 172); static Lights1 lights1 = gdSPDefLights1(80, 80, 80, 255, 255, 255, 84, 84, -84);
static Vec3f lightDir = { 89.8f, 0.0f, 89.8f }; static Vec3f lightDir = { 89.8f, 0.0f, 89.8f };
u8 playerSwordAndShield[2]; u8 playerSwordAndShield[2];
Gfx* opaRef; Gfx* opaRef;

View file

@ -380,6 +380,7 @@ s32 View_ApplyPerspective(View* view) {
if (QREG(88) & 2) { if (QREG(88) & 2) {
s32 i; s32 i;
MtxF mf; MtxF mf;
Matrix_MtxToMtxF(view->viewingPtr, &mf); Matrix_MtxToMtxF(view->viewingPtr, &mf);
PRINTF("viewing\n"); PRINTF("viewing\n");

View file

@ -310,7 +310,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
} }
EffectSsGSplash_Spawn(play, &this->dyna.actor.world.pos, NULL, NULL, 1, 700); EffectSsGSplash_Spawn(play, &this->dyna.actor.world.pos, NULL, NULL, 1, 700);
this->collider.elements->dim.worldSphere.radius = 45; this->collider.elements[0].dim.worldSphere.radius = 45;
this->actionFunc = BgSpot06Objects_LockPullOutward; this->actionFunc = BgSpot06Objects_LockPullOutward;
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);

View file

@ -102,6 +102,8 @@ void EffDust_Init(Actor* thisx, PlayState* play) {
this->scalingFactor = 20.0f; this->scalingFactor = 20.0f;
break; break;
default: default:
//! @bug Actor_Kill should be used, not free.
//! Note this also frees with a function for the wrong memory arena.
SYSTEM_ARENA_FREE(this, "../z_eff_dust.c", 202); SYSTEM_ARENA_FREE(this, "../z_eff_dust.c", 202);
break; break;
} }

View file

@ -1248,10 +1248,10 @@ void EnBb_Update(Actor* thisx, PlayState* play2) {
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
} }
this->actor.focus.pos = this->actor.world.pos; this->actor.focus.pos = this->actor.world.pos;
this->collider.elements->dim.worldSphere.center.x = this->actor.world.pos.x; this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x;
this->collider.elements->dim.worldSphere.center.y = this->collider.elements[0].dim.worldSphere.center.y =
this->actor.world.pos.y + (this->actor.shape.yOffset * this->actor.scale.y); this->actor.world.pos.y + (this->actor.shape.yOffset * this->actor.scale.y);
this->collider.elements->dim.worldSphere.center.z = this->actor.world.pos.z; this->collider.elements[0].dim.worldSphere.center.z = this->actor.world.pos.z;
if ((this->action > BB_KILL) && ((this->actor.speed != 0.0f) || (this->action == BB_GREEN))) { if ((this->action > BB_KILL) && ((this->actor.speed != 0.0f) || (this->action == BB_GREEN))) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base);

View file

@ -165,7 +165,7 @@ void EnBigokuta_Init(Actor* thisx, PlayState* play) {
Collider_InitJntSph(play, &this->collider); Collider_InitJntSph(play, &this->collider);
Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, &this->element); Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, &this->element);
this->collider.elements->dim.worldSphere.radius = this->collider.elements->dim.modelSphere.radius; this->collider.elements[0].dim.worldSphere.radius = this->collider.elements[0].dim.modelSphere.radius;
for (i = 0; i < ARRAY_COUNT(sCylinderInit); i++) { for (i = 0; i < ARRAY_COUNT(sCylinderInit); i++) {
Collider_InitCylinder(play, &this->cylinder[i]); Collider_InitCylinder(play, &this->cylinder[i]);
@ -694,14 +694,14 @@ void func_809BE568(EnBigokuta* this) {
f32 sin = Math_SinS(this->actor.shape.rot.y); f32 sin = Math_SinS(this->actor.shape.rot.y);
f32 cos = Math_CosS(this->actor.shape.rot.y); f32 cos = Math_CosS(this->actor.shape.rot.y);
this->collider.elements->dim.worldSphere.center.x = this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x +
(this->collider.elements->dim.modelSphere.center.z * sin) + (this->collider.elements[0].dim.modelSphere.center.x * cos) +
(this->actor.world.pos.x + (this->collider.elements->dim.modelSphere.center.x * cos)); (this->collider.elements[0].dim.modelSphere.center.z * sin);
this->collider.elements->dim.worldSphere.center.z = this->collider.elements[0].dim.worldSphere.center.z = this->actor.world.pos.z +
(this->actor.world.pos.z + (this->collider.elements->dim.modelSphere.center.z * cos)) - (this->collider.elements[0].dim.modelSphere.center.z * cos) -
(this->collider.elements->dim.modelSphere.center.x * sin); (this->collider.elements[0].dim.modelSphere.center.x * sin);
this->collider.elements->dim.worldSphere.center.y = this->collider.elements[0].dim.worldSphere.center.y =
this->collider.elements->dim.modelSphere.center.y + this->actor.world.pos.y; this->actor.world.pos.y + this->collider.elements[0].dim.modelSphere.center.y;
for (i = 0; i < ARRAY_COUNT(this->cylinder); i++) { for (i = 0; i < ARRAY_COUNT(this->cylinder); i++) {
this->cylinder[i].dim.pos.x = this->cylinder[i].dim.pos.x =

View file

@ -198,7 +198,7 @@ void EnBrob_Stunned(EnBrob* this, PlayState* play) {
} else if (this->skelAnime.curFrame < 8.0f) { } else if (this->skelAnime.curFrame < 8.0f) {
this->modelOffsetY -= 1250.0f; this->modelOffsetY -= 1250.0f;
} }
this->dyna.actor.colorFilterTimer = 0x50; this->dyna.actor.colorFilterTimer = 80;
} }
void EnBrob_MoveDown(EnBrob* this, PlayState* play) { void EnBrob_MoveDown(EnBrob* this, PlayState* play) {

View file

@ -155,7 +155,7 @@ typedef struct {
/* 0x1C */ void (*buyEventFunc)(PlayState*, EnGirlA*); /* 0x1C */ void (*buyEventFunc)(PlayState*, EnGirlA*);
} ShopItemEntry; // size = 0x20 } ShopItemEntry; // size = 0x20
static ShopItemEntry shopItemEntries[] = { static ShopItemEntry sShopItemEntries[] = {
// SI_DEKU_NUTS_5 // SI_DEKU_NUTS_5
{ OBJECT_GI_NUTS, GID_DEKU_NUTS, func_8002ED80, 15, 5, 0x00B2, 0x007F, GI_DEKU_NUTS_5_2, EnGirlA_CanBuy_DekuNuts, { OBJECT_GI_NUTS, GID_DEKU_NUTS, func_8002ED80, 15, 5, 0x00B2, 0x007F, GI_DEKU_NUTS_5_2, EnGirlA_CanBuy_DekuNuts,
EnGirlA_ItemGive_DekuNuts, EnGirlA_BuyEvent_ShieldDiscount }, EnGirlA_ItemGive_DekuNuts, EnGirlA_BuyEvent_ShieldDiscount },
@ -389,7 +389,7 @@ void EnGirlA_InitItem(EnGirlA* this, PlayState* play) {
return; return;
} }
this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, shopItemEntries[params].objID); this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, sShopItemEntries[params].objID);
if (this->requiredObjectSlot < 0) { if (this->requiredObjectSlot < 0) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -895,7 +895,7 @@ void EnGirlA_Noop(EnGirlA* this, PlayState* play) {
} }
void EnGirlA_SetItemDescription(PlayState* play, EnGirlA* this) { void EnGirlA_SetItemDescription(PlayState* play, EnGirlA* this) {
ShopItemEntry* tmp = &shopItemEntries[this->actor.params]; ShopItemEntry* tmp = &sShopItemEntries[this->actor.params];
s32 params = this->actor.params; s32 params = this->actor.params;
if ((this->actor.params >= SI_KEATON_MASK) && (this->actor.params <= SI_MASK_OF_TRUTH)) { if ((this->actor.params >= SI_KEATON_MASK) && (this->actor.params <= SI_MASK_OF_TRUTH)) {
@ -954,7 +954,7 @@ void EnGirlA_UpdateStockedItem(PlayState* play, EnGirlA* this) {
if (EnGirlA_TryChangeShopItem(this)) { if (EnGirlA_TryChangeShopItem(this)) {
EnGirlA_InitItem(this, play); EnGirlA_InitItem(this, play);
itemEntry = &shopItemEntries[this->actor.params]; itemEntry = &sShopItemEntries[this->actor.params];
this->actor.textId = itemEntry->itemDescTextId; this->actor.textId = itemEntry->itemDescTextId;
} else { } else {
this->isInvisible = false; this->isInvisible = false;
@ -979,7 +979,7 @@ s32 EnGirlA_TrySetMaskItemDescription(EnGirlA* this, PlayState* play) {
void EnGirlA_WaitForObject(EnGirlA* this, PlayState* play) { void EnGirlA_WaitForObject(EnGirlA* this, PlayState* play) {
s16 params = this->actor.params; s16 params = this->actor.params;
ShopItemEntry* itemEntry = &shopItemEntries[params]; ShopItemEntry* itemEntry = &sShopItemEntries[params];
if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) { if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) {
this->actor.flags &= ~ACTOR_FLAG_4; this->actor.flags &= ~ACTOR_FLAG_4;

View file

@ -80,7 +80,7 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) {
this->collider.dim.radius = 15; this->collider.dim.radius = 15;
this->collider.dim.height = 70; this->collider.dim.height = 70;
switch (this->type) { switch (this->type) {
case HEISHI4_AT_KAKRIKO_ENTRANCE: case HEISHI4_AT_KAKARIKO_ENTRANCE:
case HEISHI4_AT_IMPAS_HOUSE: case HEISHI4_AT_IMPAS_HOUSE:
this->actionFunc = func_80A56328; this->actionFunc = func_80A56328;
break; break;
@ -304,7 +304,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
} }
if (MaskReaction_GetTextId(play, sMaskReactionSets[reactionOffset]) != 0) { if (MaskReaction_GetTextId(play, sMaskReactionSets[reactionOffset]) != 0) {
if (this->unk_2B4 == 0) { if (this->unk_2B4 == 0) {
if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) { if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->actionFunc = func_80A563BC; this->actionFunc = func_80A563BC;
return; return;
} }
@ -315,7 +315,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
} }
} else { } else {
if (this->unk_2B4 != 0) { if (this->unk_2B4 != 0) {
if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) { if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->actionFunc = func_80A563BC; this->actionFunc = func_80A563BC;
return; return;
} }
@ -326,7 +326,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
} }
} }
if (Actor_TalkOfferAccepted(&this->actor, play)) { if (Actor_TalkOfferAccepted(&this->actor, play)) {
if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) { if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->unk_284 = 1; this->unk_284 = 1;
this->actionFunc = func_80A563BC; this->actionFunc = func_80A563BC;
return; return;

View file

@ -5,7 +5,7 @@
#include "global.h" #include "global.h"
typedef enum { typedef enum {
/* 0x00 */ HEISHI4_AT_KAKRIKO_ENTRANCE, /* 0x00 */ HEISHI4_AT_KAKARIKO_ENTRANCE,
/* 0x04 */ HEISHI4_AT_IMPAS_HOUSE = 4, /* 0x04 */ HEISHI4_AT_IMPAS_HOUSE = 4,
/* 0x07 */ HEISHI4_AT_MARKET_DYING = 7, /* 0x07 */ HEISHI4_AT_MARKET_DYING = 7,
/* 0x08 */ HEISHI4_AT_MARKET_NIGHT /* 0x08 */ HEISHI4_AT_MARKET_NIGHT

View file

@ -111,7 +111,7 @@ void EnNwc_ChickFall(EnNwcChick* chick, EnNwc* this, PlayState* play) {
void EnNwc_UpdateChicks(EnNwc* this, PlayState* play) { void EnNwc_UpdateChicks(EnNwc* this, PlayState* play) {
static EnNwcChickFunc chickActionFuncs[] = { EnNwc_ChickNoop, EnNwc_ChickFall }; static EnNwcChickFunc chickActionFuncs[] = { EnNwc_ChickNoop, EnNwc_ChickFall };
EnNwcChick* chick = this->chicks; EnNwcChick* chick = this->chicks;
ColliderJntSphElement* element = this->collider.elements; ColliderJntSphElement* element = &this->collider.elements[0];
Vec3f prevChickPos; Vec3f prevChickPos;
s32 i; s32 i;
f32 test; f32 test;

View file

@ -150,7 +150,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) {
this->actor.naviEnemyId = NAVI_ENEMY_TAILPASARAN; this->actor.naviEnemyId = NAVI_ENEMY_TAILPASARAN;
this->timer = 0; this->timer = 0;
this->collider.base.acFlags |= AC_HARD; this->collider.base.acFlags |= AC_HARD;
this->collider.elements->dim.modelSphere.radius = this->collider.elements->dim.worldSphere.radius = 8; this->collider.elements[0].dim.modelSphere.radius = this->collider.elements[0].dim.worldSphere.radius = 8;
EnTp_Head_SetupWait(this); EnTp_Head_SetupWait(this);
this->actor.focus.pos = this->actor.world.pos; this->actor.focus.pos = this->actor.world.pos;
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4; this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4;

View file

@ -15,7 +15,7 @@
typedef struct { typedef struct {
/* 0x00 */ Vec3f pos; /* 0x00 */ Vec3f pos;
/* 0x0C */ s16 yRot; /* 0x0C */ s16 yRot;
} EnfHGPainting; // size = 0x10; } EnfHGPainting; // size = 0x10
typedef enum { typedef enum {
/* 0 */ INTRO_WAIT, /* 0 */ INTRO_WAIT,

View file

@ -9,7 +9,7 @@ struct Fishing;
typedef struct Fishing { typedef struct Fishing {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x004]; /* 0x014C */ char unk_14C[0x004];
/* 0x0150 */ u8 isLoach; /* 0x0150 */ u8 isLoach;
/* 0x0151 */ u8 lilyTimer; // if near lily and >0, lily moves. Move more if >20 /* 0x0151 */ u8 lilyTimer; // if near lily and >0, lily moves. Move more if >20
/* 0x0152 */ u8 unk_152; /* 0x0152 */ u8 unk_152;
/* 0x0154 */ s16 unk_154; /* 0x0154 */ s16 unk_154;