ovl_en_trt Ok and Documented (#225)

* First pass: Matched everything but func_80A8E26C

* Matched func_80A8E26C

* Documented

* Cleanup

* Some renames

* Update EnTrt struct

* Move init chain out of the function

* Change unreferenced rodata implementation

* Texture stuff

* PR suggestions from other PRs that apply here

* Fix syntax error and other cleanup

* add cutscene state enum

* PR suggestions except color

* Update src/overlays/actors/ovl_En_Trt/z_en_trt.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Update src/overlays/actors/ovl_En_Trt/z_en_trt.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Update src/overlays/actors/ovl_En_Trt/z_en_trt.c

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Better bitflags

* Fix

Co-authored-by: Derek Hensley <d.hensley@tempered.io>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
This commit is contained in:
Derek Hensley 2021-07-28 19:46:26 -07:00 committed by GitHub
parent 37fc242e22
commit 231386fd00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1941 additions and 264 deletions

View File

@ -2159,7 +2159,7 @@ UNK_TYPE func_80114978(UNK_TYPE arg0);
// void func_80114B84(void);
// void func_80114CA0(void);
UNK_TYPE func_80114E90(void);
// void func_80114F2C(void);
UNK_TYPE func_80114F2C(UNK_TYPE arg0);
// void func_80114FD0(void);
// void func_80115130(void);
// void func_801152B8(void);

View File

@ -31,6 +31,7 @@ typedef enum {
/* 0x14 */ ITEM_POTION_GREEN,
/* 0x15 */ ITEM_POTION_BLUE,
/* 0x16 */ ITEM_FAIRY,
/* 0x1E */ ITEM_MUSHROOM = 0x1E,
/* 0x38 */ ITEM_MASK_ALL_NIGHT = 0x38,
/* 0x3A */ ITEM_MASK_KEATON = 0x3A,
/* 0x3B */ ITEM_MASK_GARO,
@ -96,6 +97,7 @@ typedef enum {
/* 0x3C */ GI_KEY_SMALL = 0x3C,
/* 0x3E */ GI_MAP = 0x3E,
/* 0x3F */ GI_COMPASS,
/* 0x59 */ GI_BOTTLE_POTION_RED = 0x59,
/* 0x5B */ GI_POTION_RED = 0x5B,
/* 0x5C */ GI_POTION_GREEN,
/* 0x5D */ GI_POTION_BLUE,

View File

@ -5251,10 +5251,9 @@ SECTIONS
ovl_En_Trt : AT(RomLocation)
{
build/src/overlays/actors/ovl_En_Trt/z_en_trt.o(.text)
build/asm/overlays/ovl_En_Trt_data.o(.data)
build/src/overlays/actors/ovl_En_Trt/z_en_trt.o(.data)
build/src/overlays/actors/ovl_En_Trt/z_en_trt.o(.rodata)
build/asm/overlays/ovl_En_Trt_rodata.o(.rodata)
build/asm/overlays/ovl_En_Trt_late_rodata.o(.rodata)
build/src/overlays/actors/ovl_En_Trt/z_en_trt_overlay.o(.ovl)
}
SegmentEnd = .;
SegmentSize = SegmentEnd - SegmentStart;

View File

@ -691,6 +691,22 @@ D_0600B894 = 0x0600B894;
D_0600BC08 = 0x0600BC08;
D_0600C880 = 0x0600C880;
/* z_en_trt */
D_0600FEF0 = 0x0600FEF0;
D_0600FD34 = 0x0600FD34;
D_0600DE68 = 0x0600DE68;
D_06002224 = 0x06002224;
D_06001EF4 = 0x06001EF4;
D_060030EC = 0x060030EC;
D_0600D52C = 0x0600D52C;
D_06002CB0 = 0x06002CB0;
D_0600EE98 = 0x0600EE98;
D_06003D78 = 0x06003D78;
D_06000A44 = 0x06000A44;
D_0600B0B8 = 0x0600B0B8;
D_0600B8B8 = 0x0600B8B8;
D_0600C0B8 = 0x0600C0B8;
/* z_en_warp_uzu */
D_06000EC0 = 0x06000EC0;

View File

@ -10,8 +10,8 @@
#define THIS ((EnOssan*)thisx)
#define LOOKED_AT_PLAYER 1
#define END_INTERACTION 2
#define LOOKED_AT_PLAYER (1 << 0)
#define END_INTERACTION (1 << 1)
void EnOssan_Init(Actor* thisx, GlobalContext* globalCtx);
void EnOssan_Destroy(Actor* thisx, GlobalContext* globalCtx);

File diff suppressed because it is too large Load Diff

View File

@ -2,14 +2,73 @@
#define Z_EN_TRT_H
#include <global.h>
#include "overlays/actors/ovl_En_GirlA/z_en_girla.h"
struct EnTrt;
typedef void (*EnTrtActionFunc)(struct EnTrt*, GlobalContext*);
typedef void (*EnTrtBlinkFunc)(struct EnTrt*);
typedef struct EnTrt {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x2EC];
/* 0x144 */ EnTrtActionFunc actionFunc;
/* 0x148 */ EnTrtActionFunc tmpActionFunc;
/* 0x14C */ SkelAnime skelAnime;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ UNK_TYPE1 pad1DC[0x154];
/* 0x330 */ s16 delayTimer;
/* 0x332 */ s16 sleepSoundTimer;
/* 0x334 */ s16 cutsceneState;
/* 0x338 */ s32 stickAccumX;
/* 0x33C */ s32 stickAccumY;
/* 0x340 */ EnGirlA* items[3];
/* 0x34C */ u8 cursorIdx;
/* 0x350 */ StickDirectionPrompt stickLeftPrompt;
/* 0x388 */ StickDirectionPrompt stickRightPrompt;
/* 0x3C0 */ f32 shopItemSelectedTween;
/* 0x3C4 */ f32 cursorAnimTween;
/* 0x3C8 */ u8 cursorAnimState;
/* 0x3CC */ f32 arrowAnimTween;
/* 0x3D0 */ f32 stickAnimTween;
/* 0x3D4 */ u8 arrowAnimState;
/* 0x3D5 */ u8 stickAnimState;
/* 0x3D6 */ s16 blinkTimer;
/* 0x3D8 */ s16 eyeTextureIdx;
/* 0x3DC */ EnTrtBlinkFunc blinkFunc;
/* 0x3E0 */ s16 cutscene;
/* 0x3E2 */ s16 tmpGetMushroomCutscene;
/* 0x3E4 */ f32 cursorX;
/* 0x3E8 */ f32 cursorY;
/* 0x3EC */ f32 cursorZ;
/* 0x3F0 */ s32 cursorColorR;
/* 0x3F4 */ s32 cursorColorG;
/* 0x3F8 */ s32 cursorColorB;
/* 0x3FC */ s32 cursorColorA;
/* 0x400 */ u8 drawCursor;
/* 0x402 */ s16 timer;
/* 0x404 */ s16 animationIdx;
/* 0x406 */ u16 textId;
/* 0x408 */ u16 tmpTextId;
/* 0x40A */ u16 talkOptionTextId;
/* 0x40C */ s16 lookForwardCutscene;
/* 0x40E */ s16 lookToShelfCutscene;
/* 0x410 */ s16 lookToShopkeeperCutscene;
/* 0x412 */ s16 getMushroomCutscene;
/* 0x414 */ UNK_TYPE1 pad414[0x2];
/* 0x416 */ Vec3s headRot;
/* 0x41C */ Vec3f headPos;
/* 0x428 */ s16 headPitch;
/* 0x42A */ s16 headYaw;
/* 0x42C */ u16 flags;
} EnTrt; // size = 0x430
typedef enum {
/* 0 */ ENTRT_CUTSCENESTATE_STOPPED,
/* 1 */ ENTRT_CUTSCENESTATE_WAITING,
/* 2 */ ENTRT_CUTSCENESTATE_PLAYING_SPECIAL, // Used to do/set extra flags (such as waiting mid animation)
/* 3 */ ENTRT_CUTSCENESTATE_PLAYING
} EnTrtCutsceneState;
extern const ActorInit En_Trt_InitVars;
#endif // Z_EN_TRT_H

View File

@ -97,7 +97,7 @@ void func_80B3C39C(ObjGhaka* this, GlobalContext* globalCtx) {
}
void func_80B3C4E0(ObjGhaka* this, GlobalContext* globalCtx) {
s32 talkState = func_80152498(&globalCtx->msgCtx);
u8 talkState = func_80152498(&globalCtx->msgCtx);
if (talkState == 5) {
if (func_80147624(globalCtx)) {

View File

@ -11264,87 +11264,87 @@
0x80A88698:("func_80A88698",),
0x80A886D4:("func_80A886D4",),
0x80A887E4:("EnTru_Draw",),
0x80A8B770:("func_80A8B770",),
0x80A8B80C:("func_80A8B80C",),
0x80A8B88C:("func_80A8B88C",),
0x80A8B964:("func_80A8B964",),
0x80A8B9B8:("func_80A8B9B8",),
0x80A8BA3C:("func_80A8BA3C",),
0x80A8BAF8:("func_80A8BAF8",),
0x80A8BB3C:("func_80A8BB3C",),
0x80A8BB8C:("func_80A8BB8C",),
0x80A8BC8C:("func_80A8BC8C",),
0x80A8BCD4:("func_80A8BCD4",),
0x80A8BD28:("func_80A8BD28",),
0x80A8BD7C:("func_80A8BD7C",),
0x80A8BDD0:("func_80A8BDD0",),
0x80A8BEF4:("func_80A8BEF4",),
0x80A8BF24:("func_80A8BF24",),
0x80A8BFE0:("func_80A8BFE0",),
0x80A8C168:("func_80A8C168",),
0x80A8C1E8:("func_80A8C1E8",),
0x80A8C288:("func_80A8C288",),
0x80A8C488:("func_80A8C488",),
0x80A8C564:("func_80A8C564",),
0x80A8C64C:("func_80A8C64C",),
0x80A8C6CC:("func_80A8C6CC",),
0x80A8C74C:("func_80A8C74C",),
0x80A8C8A0:("func_80A8C8A0",),
0x80A8C98C:("func_80A8C98C",),
0x80A8CA2C:("func_80A8CA2C",),
0x80A8CB0C:("func_80A8CB0C",),
0x80A8CBFC:("func_80A8CBFC",),
0x80A8CCB4:("func_80A8CCB4",),
0x80A8CCF0:("func_80A8CCF0",),
0x80A8CD2C:("func_80A8CD2C",),
0x80A8CEE8:("func_80A8CEE8",),
0x80A8D094:("func_80A8D094",),
0x80A8D380:("func_80A8D380",),
0x80A8D5C8:("func_80A8D5C8",),
0x80A8D880:("func_80A8D880",),
0x80A8D9CC:("func_80A8D9CC",),
0x80A8DAAC:("func_80A8DAAC",),
0x80A8DBBC:("func_80A8DBBC",),
0x80A8DD10:("func_80A8DD10",),
0x80A8DD60:("func_80A8DD60",),
0x80A8DEBC:("func_80A8DEBC",),
0x80A8DF20:("func_80A8DF20",),
0x80A8DFBC:("func_80A8DFBC",),
0x80A8E02C:("func_80A8E02C",),
0x80A8E0D0:("func_80A8E0D0",),
0x80A8E26C:("func_80A8E26C",),
0x80A8E30C:("func_80A8E30C",),
0x80A8E330:("func_80A8E330",),
0x80A8E3CC:("func_80A8E3CC",),
0x80A8E458:("func_80A8E458",),
0x80A8E4D8:("func_80A8E4D8",),
0x80A8E5A4:("func_80A8E5A4",),
0x80A8E754:("func_80A8E754",),
0x80A8E774:("func_80A8E774",),
0x80A8E79C:("func_80A8E79C",),
0x80A8E830:("func_80A8E830",),
0x80A8E890:("func_80A8E890",),
0x80A8E91C:("func_80A8E91C",),
0x80A8E92C:("func_80A8E92C",),
0x80A8E94C:("func_80A8E94C",),
0x80A8E9A4:("func_80A8E9A4",),
0x80A8EB4C:("func_80A8EB4C",),
0x80A8EB9C:("func_80A8EB9C",),
0x80A8EBD8:("func_80A8EBD8",),
0x80A8ECA4:("func_80A8ECA4",),
0x80A8ED3C:("func_80A8ED3C",),
0x80A8EFA4:("func_80A8EFA4",),
0x80A8EFF8:("func_80A8EFF8",),
0x80A8F268:("func_80A8F268",),
0x80A8F404:("func_80A8F404",),
0x80A8B770:("EnTrt_ChangeAnim",),
0x80A8B80C:("EnTrt_TestItemSelected",),
0x80A8B88C:("EnTrt_SpawnShopItems",),
0x80A8B964:("EnTrt_UpdateCollider",),
0x80A8B9B8:("EnTrt_UpdateCursorPos",),
0x80A8BA3C:("EnTrt_SetupGetMushroomCutscene",),
0x80A8BAF8:("EnTrt_GetItemTextId",),
0x80A8BB3C:("EnTrt_GetItemChoiceTextId",),
0x80A8BB8C:("EnTrt_EndInteraction",),
0x80A8BC8C:("EnTrt_TestEndInteraction",),
0x80A8BCD4:("EnTrt_TestCancelOption",),
0x80A8BD28:("EnTrt_SetupStartShopping",),
0x80A8BD7C:("EnTrt_StartShopping",),
0x80A8BDD0:("EnTrt_UpdateJoystickInputState",),
0x80A8BEF4:("EnTrt_SetCursorIndexFromNeutral",),
0x80A8BF24:("EnTrt_Hello",),
0x80A8BFE0:("EnTrt_GetMushroom",),
0x80A8C168:("EnTrt_PayForMushroom",),
0x80A8C1E8:("EnTrt_Goodbye",),
0x80A8C288:("EnTrt_SetupTryToGiveRedPotion",),
0x80A8C488:("EnTrt_GiveRedPotionForKoume",),
0x80A8C564:("EnTrt_GivenRedPotionForKoume",),
0x80A8C64C:("EnTrt_EndConversation",),
0x80A8C6CC:("EnTrt_FacingShopkeeperDialogResult",),
0x80A8C74C:("EnTrt_FaceShopkeeper",),
0x80A8C8A0:("EnTrt_LookToShelf",),
0x80A8C98C:("EnTrt_CursorLeftRight",),
0x80A8CA2C:("EnTrt_HasPlayerSelectedItem",),
0x80A8CB0C:("EnTrt_BrowseShelf",),
0x80A8CBFC:("EnTrt_SetupBuyItemWithFanfare",),
0x80A8CCB4:("EnTrt_SetupCannotBuy",),
0x80A8CCF0:("EnTrt_SetupCanBuy",),
0x80A8CD2C:("EnTrt_HandleCanBuyItem",),
0x80A8CEE8:("EnTrt_SelectItem",),
0x80A8D094:("EnTrt_IdleSleeping",),
0x80A8D380:("EnTrt_IdleAwake",),
0x80A8D5C8:("EnTrt_BeginInteraction",),
0x80A8D880:("EnTrt_Surprised",),
0x80A8D9CC:("EnTrt_TryToGiveRedPotionAfterSurprised",),
0x80A8DAAC:("EnTrt_TryToGiveRedPotion",),
0x80A8DBBC:("EnTrt_ItemGiven",),
0x80A8DD10:("EnTrt_SetupEndInteraction",),
0x80A8DD60:("EnTrt_ShopkeeperGone",),
0x80A8DEBC:("EnTrt_CannotBuy",),
0x80A8DF20:("EnTrt_CanBuy",),
0x80A8DFBC:("EnTrt_BuyItemWithFanfare",),
0x80A8E02C:("EnTrt_SetupItemGiven",),
0x80A8E0D0:("EnTrt_ContinueShopping",),
0x80A8E26C:("EnTrt_PositionSelectedItem",),
0x80A8E30C:("EnTrt_ResetItemPosition",),
0x80A8E330:("EnTrt_TakeItemOffShelf",),
0x80A8E3CC:("EnTrt_ReturnItemToShelf",),
0x80A8E458:("EnTrt_UpdateItemSelectedProperty",),
0x80A8E4D8:("EnTrt_UpdateCursorAnim",),
0x80A8E5A4:("EnTrt_UpdateStickDirectionPromptAnim",),
0x80A8E754:("EnTrt_OpenEyes",),
0x80A8E774:("EnTrt_CloseEyes",),
0x80A8E79C:("EnTrt_Blink",),
0x80A8E830:("EnTrt_NodOff",),
0x80A8E890:("EnTrt_OpenThenCloseEyes",),
0x80A8E91C:("EnTrt_EyesClosed",),
0x80A8E92C:("EnTrt_OpenEyes2",),
0x80A8E94C:("EnTrt_OpenEyesThenSetToBlink",),
0x80A8E9A4:("EnTrt_TalkToShopkeeper",),
0x80A8EB4C:("EnTrt_SetupTalkToShopkeeper",),
0x80A8EB9C:("EnTrt_SetupLookToShopkeeperFromShelf",),
0x80A8EBD8:("EnTrt_LookToShopkeeperFromShelf",),
0x80A8ECA4:("EnTrt_InitShopkeeper",),
0x80A8ED3C:("EnTrt_InitShop",),
0x80A8EFA4:("EnTrt_GetCutscenes",),
0x80A8EFF8:("EnTrt_DrawCursor",),
0x80A8F268:("EnTrt_DrawTextRec",),
0x80A8F404:("EnTrt_DrawStickDirectionPrompt",),
0x80A8F7AC:("EnTrt_Init",),
0x80A8F7E8:("EnTrt_Destroy",),
0x80A8F828:("EnTrt_Update",),
0x80A8F8C4:("func_80A8F8C4",),
0x80A8FA00:("func_80A8FA00",),
0x80A8FB34:("func_80A8FB34",),
0x80A8FBB4:("func_80A8FBB4",),
0x80A8FC64:("func_80A8FC64",),
0x80A8F8C4:("EnTrt_UpdateHeadYawAndPitch",),
0x80A8FA00:("EnTrt_UpdateHeadPosAndRot",),
0x80A8FB34:("EnTrt_OverrideLimbDraw",),
0x80A8FBB4:("EnTrt_PostLimbDraw",),
0x80A8FC64:("EnTrt_UnkActorDraw",),
0x80A8FCE0:("EnTrt_Draw",),
0x80A903B0:("func_80A903B0",),
0x80A903BC:("EnTest5_Init",),

View File

@ -13647,17 +13647,17 @@
0x80A8B4A0:("enTruOverlayInfo","OverlayRelocationSection","",0x14),
0x80A8B4B4:("enTruOverlayRelocations","u32","[174]",0x2b8),
0x80A8B76C:("enTruOverlayInfoOffset","u32","",0x4),
0x80A8FE10:("D_80A8FE10","UNK_TYPE1","",0x1),
0x80A8FE10:("sAnimations","UNK_TYPE1","",0x1),
0x80A8FEB0:("En_Trt_InitVars","UNK_TYPE1","",0x1),
0x80A8FED0:("D_80A8FED0","UNK_TYPE4","",0x4),
0x80A8FED4:("D_80A8FED4","UNK_TYPE1","",0x1),
0x80A8FEEC:("D_80A8FEEC","f32","",0x4),
0x80A8FED0:("sActorScale","UNK_TYPE4","",0x4),
0x80A8FED4:("sShop","UNK_TYPE1","",0x1),
0x80A8FEEC:("sSelectedItemPosition","f32","",0x4),
0x80A8FEF0:("D_80A8FEF0","f32","",0x4),
0x80A8FEF4:("D_80A8FEF4","f32","",0x4),
0x80A8FEF8:("D_80A8FEF8","UNK_TYPE1","",0x1),
0x80A8FEFC:("D_80A8FEFC","UNK_TYPE1","",0x1),
0x80A8FF10:("D_80A8FF10","char","[]",0x1),
0x80A8FF20:("D_80A8FF20","char","[]",0x1),
0x80A8FEF8:("sInitChain","UNK_TYPE1","",0x1),
0x80A8FEFC:("sEyeTextures","UNK_TYPE1","",0x1),
0x80A8FF10:("filename1","char","[]",0x1),
0x80A8FF20:("filename2","char","[]",0x1),
0x80A8FF30:("D_80A8FF30","f32","",0x4),
0x80A8FF34:("jtbl_D_80A8FF34","UNK_PTR","",0x4),
0x80A8FF4C:("D_80A8FF4C","f32","",0x4),