d_a_obj_kznkarm OK (#2678)

* d_a_obj_kznkarm OK

* d_a_title GZ2P01 Matching

* More GZ2P01 Matches

* d_s_name matching for PAL

* d_msg_scrn_light Matching for PAL

* d_menu_fishing Matches on PAL

* d_file_sel_info Matches on PAL

* d_a_npc_cd Matching on PAL

* d_error_msg Matches on PAL

* d_cam_param matches as is on PAL

* Fix PAL JSystem and Z2AudioLib splits/symbols

* Aligning the rest of TUs to compile on all GC versions
This commit is contained in:
hatal175
2025-09-21 22:26:34 +03:00
committed by GitHub
parent e17e537ea0
commit e82806047b
26 changed files with 784 additions and 645 deletions
+48 -5
View File
@@ -1,8 +1,22 @@
#ifndef D_A_OBJ_KZNKARM_H
#define D_A_OBJ_KZNKARM_H
#include "d/d_bg_s_acch.h"
#include "f_op/f_op_actor_mng.h"
struct daObjKznkarm_Attr_c {
/* 0x00 */ f32 gravity;
/* 0x04 */ f32 maximum_falling_speed;
/* 0x08 */ f32 bounce_coeff;
/* 0x0C */ f32 water_drag;
/* 0x10 */ f32 initial_throwing_force;
/* 0x14 */ f32 initial_throwing_upward_force;
/* 0x18 */ Vec field_0x18;
/* 0x24 */ Vec position;
/* 0x30 */ S16Vec angular_speed;
/* 0x36 */ s16 throw_angular_speed;
};
/**
* @ingroup actors-objects
* @class daObjKznkarm_c
@@ -13,7 +27,15 @@
*/
class daObjKznkarm_c : public fopAc_ac_c {
public:
struct Mode_e {};
enum Mode_e {
MODE_BROKEN_e,
MODE_CARRY_e,
MODE_THROW_e,
MODE_STAY_e,
MODE_MAX_e,
};
typedef void (daObjKznkarm_c::*actionFunc)();
/* 80C4F858 */ void setAction(daObjKznkarm_c::Mode_e);
/* 80C4F88C */ void callInit();
@@ -29,13 +51,34 @@ public:
/* 80C505F8 */ void create_init();
/* 80C506DC */ void initBaseMtx();
/* 80C50708 */ void setBaseMtx();
/* 80C5076C */ void getGroundSlope(s16);
/* 80C5076C */ s16 getGroundSlope(s16);
static u8 const M_attr[56];
static u8 ActionTable[96];
inline int createHeap();
inline int draw();
inline int execute();
inline int create();
inline ~daObjKznkarm_c();
inline daObjKznkarm_Attr_c* attr() const;
static daObjKznkarm_Attr_c const M_attr;
static actionFunc ActionTable[4][2];
private:
/* 0x568 */ u8 field_0x568[0x7b4 - 0x568];
/* 0x568 */ J3DModel* mpModel;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ dBgS_AcchCir mAcchCir;
/* 0x5B4 */ dBgS_ObjAcch mAcch;
/* 0x78C */ actionFunc* mAction;
/* 0x790 */ Mode_e mMode;
/* 0x794 */ u32 mShadowId;
/* 0x798 */ u32 field_0x798[4];
/* 0x7A8 */ s16 field_0x7a8;
/* 0x7AA */ s16 field_0x7aa;
/* 0x7AC */ s16 field_0x7ac;
/* 0x7AE */ u8 field_0x7ae;
/* 0x7AF */ u8 field_0x7af;
/* 0x7B0 */ u8 field_0x7b0;
/* 0x7B1 */ u8 field_0x7b1[0x7b4 - 0x7b1];
};
STATIC_ASSERT(sizeof(daObjKznkarm_c) == 0x7b4);
+1 -1
View File
@@ -906,7 +906,7 @@ public:
bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; }
bool getHeavyStateAndBoots() { return checkNoResetFlg0(FLG0_HVY_STATE); }
bool checkEnemyAttentionLock() const { return checkResetFlg0(RFLG0_ENEMY_ATTN_LOCK); }
bool getGrabUpStart() const { return checkResetFlg0(RFLG0_UNK_8000); }
u32 getGrabUpStart() const { return checkResetFlg0(RFLG0_UNK_8000); }
bool checkCanoeSlider() const { return mSpecialMode == 0x2D; }
bool checkGoatStopGame() const { return mSpecialMode == 0x2A; }
bool onGoatStopGame() { return mSpecialMode = 0x2A; }
+8
View File
@@ -79,7 +79,15 @@ public:
/* 80259008 */ void brightCheck();
/* 802590F8 */ void changeGameScene();
#if VERSION == VERSION_GCN_PAL
void bmg_data_set();
void tex_data_set();
#endif
private:
#if VERSION == VERSION_GCN_PAL
u8 field_0x1c4_pal[0x28];
#endif
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ JKRExpHeap* mHeap;
/* 0x1D0 */ JKRExpHeap* field_0x1d0;