d_a_kddoor 100% except demo (#1225)

* d_a_kddoor 74%

* d_a_kddoor 99%

* Fix function order

* Fix .rodata order

* Add missing .rodata entry

* Implement reviews
This commit is contained in:
Robert Kämpf
2026-09-28 20:17:06 +02:00
committed by GitHub
parent 3a09143150
commit 526c6d8972
3 changed files with 828 additions and 117 deletions
+1 -1
View File
@@ -1651,7 +1651,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_gy"),
ActorRel(NonMatching, "d_a_icelift"),
ActorRel(Matching, "d_a_kb"),
ActorRel(NonMatching, "d_a_kddoor"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_kddoor"),
ActorRel(Matching, "d_a_kita"),
ActorRel(NonMatching, "d_a_klft"),
ActorRel(Matching, "d_a_kmon"),
+67 -30
View File
@@ -1,24 +1,45 @@
#ifndef D_A_KDDOOR_H
#define D_A_KDDOOR_H
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_door.h"
class dBgW;
class dDoor_ssk_sub_c {
public:
void init();
void end();
void openInit();
void openProc(dDoor_info_c*);
BOOL openProc(dDoor_info_c*);
void closeInit();
void closeProc(dDoor_info_c*);
BOOL closeProc(dDoor_info_c*);
dDoor_ssk_sub_c();
void drawSet();
BOOL drawSet();
void calcMtx(dDoor_info_c*, float, float, unsigned char);
~dDoor_ssk_sub_c() {}
public:
/* Place member variables here */
};
/* 0x000 */ mDoExt_McaMorf* field_0x000;
/* 0x004 */ mDoExt_McaMorf* field_0x004;
/* 0x008 */ dPa_smokeEcallBack field_0x008;
/* 0x028 */ dCcD_Stts field_0x028;
/* 0x064 */ dCcD_Cyl field_0x064;
/* 0x194 */ u8 field_0x194;
/* 0x195 */ u8 field_0x195[0x196 - 0x195];
/* 0x196 */ s16 field_0x196;
/* 0x198 */ s16 field_0x198;
/* 0x19A */ s16 field_0x19A;
/* 0x19C */ s16 field_0x19C;
/* 0x19E */ s16 field_0x19E;
/* 0x1A0 */ cXyz field_0x1A0;
/* 0x1AC */ cXyz field_0x1AC;
/* 0x1B8 */ cXyz field_0x1B8;
/* 0x1C4 */ u8 field_0x1C4;
/* 0x1C5 */ u8 field_0x1C5;
/* 0x1C6 */ u8 field_0x1C6[0x1C8 - 0x1C6];
}; // Size: 0x1C8
class dDoor_ssk_c {
public:
@@ -28,52 +49,68 @@ public:
void execute(dDoor_info_c*);
void draw(dDoor_info_c*);
void closeInit();
void closeProc(dDoor_info_c*);
BOOL closeProc(dDoor_info_c*);
void openInit();
void openProc(dDoor_info_c*);
BOOL openProc(dDoor_info_c*);
public:
/* Place member variables here */
};
/* 0x000 */ dDoor_ssk_sub_c field_0x000[3];
/* 0x558 */ u8 field_0x558;
/* 0x559 */ u8 field_0x559;
/* 0x55A */ u8 field_0x55A;
/* 0x55B */ u8 field_0x55B;
/* 0x55C */ dKy_tevstr_c field_0x55C;
}; // Size: 0x60C
class daKddoor_c : public dDoor_info_c {
public:
void checkFlag(unsigned short) {}
bool checkFlag(unsigned short flag) { return (field_0x94A & flag) != 0; }
inline BOOL execute();
void offFlag(unsigned short) {}
void onFlag(unsigned short) {}
void offFlag(unsigned short flag) { field_0x94A &= ~flag; }
void onFlag(unsigned short flag) { field_0x94A |= flag; }
void setAction(unsigned char) {}
void chkMakeKey();
BOOL chkMakeKey();
void setKey();
void chkMakeStop();
void chkStopF();
void chkStopB();
BOOL chkMakeStop();
int chkStopF();
int chkStopB();
void setStop();
void chkGenocideCase();
void chkFeelerCase();
void chkStopOpen();
BOOL chkGenocideCase();
BOOL chkFeelerCase();
BOOL chkStopOpen();
void setStopDemo();
void chkStopClose();
void getBmdName();
void getBmdName2();
void getDzbName();
void CreateHeap();
BOOL chkStopClose();
char* getBmdName();
char* getBmdName2();
char* getDzbName();
BOOL CreateHeap();
void setEventPrm();
void openInit();
void openProc();
BOOL openProc();
void openEnd();
void closeInit();
void closeProc();
BOOL closeProc();
void closeEnd();
void calcMtx();
void CreateInit();
BOOL CreateInit();
cPhs_State create();
void demoProc();
BOOL draw();
static const char M_arcname[];
public:
/* Place member variables here */
};
/* 0x2D0 */ request_of_phase_process_class field_0x2D0;
/* 0x2D8 */ dDoor_smoke_c field_0x2D8;
/* 0x310 */ dDoor_key2_c field_0x310;
/* 0x334 */ dDoor_ssk_c field_0x334;
/* 0x940 */ J3DModel* field_0x940;
/* 0x944 */ dBgW* field_0x944;
/* 0x948 */ u8 field_0x948;
/* 0x949 */ u8 field_0x949[0x94A - 0x949];
/* 0x94A */ u16 field_0x94A;
/* 0x94C */ f32 field_0x94C;
}; // Size: 0x950
#endif /* D_A_KDDOOR_H */
File diff suppressed because it is too large Load Diff