d_door start

This commit is contained in:
LagoLunatic
2023-12-04 16:22:09 -05:00
parent be8d5c758d
commit a90e2e842e
11 changed files with 327 additions and 53 deletions
+2 -2
View File
@@ -3,8 +3,9 @@
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
#include "d/d_door.h"
class daDoor10_c : public fopAc_ac_c {
class daDoor10_c : public dDoor_info_c {
public:
void checkFlag(unsigned short) {}
inline BOOL execute();
@@ -39,7 +40,6 @@ public:
BOOL draw();
public:
/* 0x000 */ dDoor_info_c parent;
/* 0x2D0 */ dDoor_smoke_c m2D0;
/* 0x306 */ u8 m306[0x308 - 0x306];
/* 0x308 */ dDoor_key2_c mKeyLock;
+2 -2
View File
@@ -4,8 +4,9 @@
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_door.h"
class daDoor12_c : public fopAc_ac_c {
class daDoor12_c : public dDoor_info_c {
public:
void checkFlag(unsigned short) {}
inline BOOL execute();
@@ -43,7 +44,6 @@ public:
BOOL draw();
public:
/* 0x000 */ dDoor_info_c parent;
/* 0x2D0 */ request_of_phase_process_class m2D0;
/* 0x2D8 */ J3DModel* mpLeftModel;
/* 0x2DC */ J3DModel* mpRightModel;
+34 -1
View File
@@ -2,8 +2,41 @@
#define D_A_KDDOOR_H
#include "f_op/f_op_actor.h"
#include "d/d_door.h"
class daKddoor_c : public fopAc_ac_c {
class dDoor_ssk_sub_c {
public:
void init();
void end();
void openInit();
void openProc(dDoor_info_c*);
void closeInit();
void closeProc(dDoor_info_c*);
dDoor_ssk_sub_c();
void drawSet();
void calcMtx(dDoor_info_c*, float, float, unsigned char);
public:
/* Place member variables here */
};
class dDoor_ssk_c {
public:
void init(dDoor_info_c*);
void end();
void calcMtx(dDoor_info_c*);
void execute(dDoor_info_c*);
void draw(dDoor_info_c*);
void closeInit();
void closeProc(dDoor_info_c*);
void openInit();
void openProc(dDoor_info_c*);
public:
/* Place member variables here */
};
class daKddoor_c : public dDoor_info_c {
public:
void checkFlag(unsigned short) {}
inline BOOL execute();
+2 -2
View File
@@ -4,8 +4,9 @@
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
#include "m_Do/m_Do_ext.h"
#include "d/d_door.h"
class daKnob00_c : public fopAc_ac_c {
class daKnob00_c : public dDoor_info_c {
public:
void checkFlag(unsigned short) {}
inline BOOL execute();
@@ -45,7 +46,6 @@ public:
BOOL draw();
public:
/* 0x000 */ dDoor_info_c parent;
/* 0x2D0 */ dDoor_msg_c m2D0;
/* 0x2DC */ u8 m2DC[0x2E4 - 0x2DC];
/* 0x2E4 */ J3DModel* mpModel;
+12
View File
@@ -1761,6 +1761,10 @@ inline int dComIfGp_roomControl_loadRoom(int roomCount, u8* rooms) {
return g_dComIfG_gameInfo.play.getRoomControl()->loadRoom(roomCount, rooms);
}
inline BOOL dComIfGp_roomControl_checkRoomDisp(int i_roomNo) {
return g_dComIfG_gameInfo.play.getRoomControl()->checkRoomDisp(i_roomNo);
}
inline dBgS* dComIfG_Bgsp() {
return &g_dComIfG_gameInfo.play.mBgS;
}
@@ -1856,6 +1860,14 @@ inline void dComIfGp_map_deleteImage(int param_0) {
dMap_c::deleteImage(param_0);
}
inline void dComIfGp_map_setAGBMapSendStopFlg() {
// dMap_c::setAGBMapSendStopFlg();
}
inline void dComIfGp_map_clrAGBMapSendStopFlg() {
// dMap_c::clrAGBMapSendStopFlg();
}
inline dDemo_manager_c* dComIfGp_demo_get() {
return g_dComIfG_gameInfo.play.getDemo();
}
+168
View File
@@ -0,0 +1,168 @@
#ifndef D_DOOR_H
#define D_DOOR_H
#include "f_op/f_op_actor.h"
#include "d/d_particle.h"
#include "SSystem/SComponent/c_phase.h"
class dDoor_info_c : public fopAc_ac_c {
public:
void valShipId() {}
u8 getSwbit();
u8 getSwbit2();
u8 getType();
void setType(u8);
u8 getEventNo();
u8 getFRoomNo();
u8 getBRoomNo();
u8 getShipId();
u8 getArg1();
BOOL adjoinPlayer();
void getViewRoomNo();
void frontCheckOld();
void frontCheck();
void drawCheck_local();
void drawCheck(int);
void checkExecute();
void startDemoProc();
void makeEventId(int);
void initProc(int);
void initOpenDemo(int);
void checkArea(f32, f32, f32);
void openInitCom(int);
void openProcCom();
void closeEndCom();
void getDemoAction();
void setGoal();
void setPlayerAngle(int);
void setPosAndAngle(cXyz*, s16);
public:
/* 0x290 */ u8 mRoomNo2;
/* 0x291 */ u8 mFRoomNo;
/* 0x292 */ u8 mBRoomNo;
/* 0x293 */ u8 m293[0x294 - 0x293];
/* 0x294 */ cXyz mAngleVec;
/* 0x2A0 */ u8 mFrontCheck;
/* 0x2A1 */ u8 m2A1;
/* 0x2A2 */ u8 m2A2[0x2A4 - 0x2A2];
/* 0x2A4 */ void* m2A4;
/* 0x2A8 */ s16 m2A8;
/* 0x2AA */ u8 m2AA[0x2AC - 0x2AA];
/* 0x2AC */ void* m2AC;
/* 0x2B0 */ void* m2B0;
/* 0x2B4 */ void* m2B4;
/* 0x2B8 */ void* m2B8;
/* 0x2BC */ u8 m2BC;
/* 0x2BD */ u8 m2BD;
/* 0x2BE */ u8 m2BE[0x2C0 - 0x2BE];
/* 0x2C0 */ void* m2C0;
/* 0x2C4 */ void* m2C4;
/* 0x2C8 */ int mStaffId;
/* 0x2CC */ u8 mRoomNo;
/* 0x2CD */ u8 m2CD[0x2D0 - 0x2CD];
};
class dDoor_smoke_c {
public:
void smokeInit(dDoor_info_c*);
void smokeProc(dDoor_info_c*);
void smokeEnd();
public:
/* 0x00 */ dPa_smokeEcallBack mSmokeCb;
/* 0x04 */ u8 m04[0x22 - 0x04];
/* 0x22 */ s16 m22;
/* 0x24 */ u8 m24[0x28 - 0x24];
/* 0x28 */ f32 m28;
/* 0x2C */ f32 m2C;
/* 0x30 */ f32 m30;
/* 0x34 */ s8 m34;
/* 0x35 */ u8 m35;
};
class dDoor_key2_c {
public:
void keyResLoad();
void keyResDelete();
void keyInit(dDoor_info_c*);
void keyProc();
void keyCreate_Nkey();
void keyCreate_Bkey();
void keyCreate(int);
void keyOn();
void keyOff();
void calcMtx(dDoor_info_c*);
void draw(dDoor_info_c*);
public:
/* 0x00 */ bool mbEnabled;
/* 0x01 */ u8 m01[0x04 - 0x01];
/* 0x04 */ J3DModel* mpModel;
/* 0x08 */ mDoExt_bckAnm mBckAnim;
/* 0x18 */ request_of_phase_process_class mPhs;
/* 0x20 */ u8 m20;
/* 0x21 */ u8 mbIsBossDoor;
/* 0x22 */ u8 m22[0x24 - 0x22];
};
class dDoor_stop_c {
public:
void calcMtx(dDoor_info_c*);
void closeInit(dDoor_info_c*);
void closeProc(dDoor_info_c*);
void openInit(dDoor_info_c*);
void openProc(dDoor_info_c*);
void create();
public:
/* 0x0 */ J3DModel* mpModel;
/* 0x4 */ f32 m4;
/* 0x8 */ u8 m8;
/* 0x9 */ u8 mFrontCheck;
/* 0xA */ u8 mA;
/* 0xB */ u8 mB;
};
class dDoor_msg_c {
public:
void init(s16);
void proc(cXyz*);
public:
/* 0x0 */ u32 m0;
/* 0x4 */ int mMsg;
/* 0x8 */ s8 m8;
/* 0x9 */ u8 m9[0xA - 0x9];
/* 0xA */ s16 mA;
};
class dDoor_hkyo_c {
public:
void chkUse() {}
void offUse() {}
void onUse(u8) {}
s32 resLoad();
void resDelete();
void create();
void setAnm(u8);
void init();
void calcMtx(dDoor_info_c*, f32);
void draw(dDoor_info_c*);
void proc(dDoor_info_c*);
void chkFirst();
void onFirst();
BOOL chkStart();
public:
/* 0x00 */ request_of_phase_process_class mPhs;
/* 0x08 */ J3DModel* mpModel;
/* 0x0C */ mDoExt_brkAnm* mpBrkAnm;
/* 0x10 */ u8 mAnmIdx;
/* 0x11 */ u8 m11;
/* 0x12 */ u8 m12[0x14 - 0x12];
};
#endif /* D_DOOR_H */
+26
View File
@@ -7,6 +7,32 @@ class fopAc_ac_c;
class dMap_c {
public:
void clrAGBMapSendStopFlg() {}
void getIconDispMode() {}
void getMapAlpha() {}
void getMapDspPosLeftUpX() {}
void getMapDspPosLeftUpY() {}
void getMapDspSizeHeight() {}
void getMapDspSizeWidth() {}
void getNowRoom() {}
void isAGBMapSendStopFlg() {}
void isMapDispTypeEnlargementSize() {}
void isMapDispTypeRealSize() {}
void setAGBMapSendStopFlg() {}
void setIconDispMode(u8) {}
void setIconFreeAlpha(u8) {}
void setIconFreePosX(s16) {}
void setIconFreePosY(s16) {}
void setIconFreeScale(f32) {}
void setIconSelfAlpha(u8) {}
void setIconSelfScale(f32) {}
void setMapAlpha(u8) {}
void setMapChgSizeEnlargementSize() {}
void setMapChgSizeRealSize() {}
void setMapDispMode(u8) {}
void setMapDispPosLeftUpX(s16) {}
void setMapDispPosLeftUpY(s16) {}
static void create();
void isEnableEnlargementScroll();
static bool isEnableDispMap();
-1
View File
@@ -10,7 +10,6 @@
#include "m_Do/m_Do_ext.h"
class mDoDvdThd_toMainRam_c;
class dPa_levelEcallBack;
class dKy_tevstr_c;
class cBgS_PolyInfo;
class JPADrawInfo;
+1 -1
View File
@@ -821,7 +821,7 @@ public:
void init();
dStage_roomDt_c* getStatusRoomDt(int);
bool checkRoomDisp(int) const;
BOOL checkRoomDisp(int) const;
int loadRoom(int, u8*);
void zoneCountCheck(int) const;
void checkDrawArea() const;
+79 -43
View File
@@ -3,57 +3,70 @@
// Translation Unit: d_door.cpp
//
#include "d_door.h"
#include "dolphin/types.h"
#include "d/d_door.h"
#include "d/d_com_inf_game.h"
#include "d/actor/d_a_player.h"
/* 8006B39C-8006B3A8 .text getSwbit__12dDoor_info_cFv */
void dDoor_info_c::getSwbit() {
/* Nonmatching */
u8 dDoor_info_c::getSwbit() {
return fopAcM_GetParam(this) & 0xFF;
}
/* 8006B3A8-8006B3B4 .text getSwbit2__12dDoor_info_cFv */
void dDoor_info_c::getSwbit2() {
/* Nonmatching */
u8 dDoor_info_c::getSwbit2() {
return (fopAcM_GetParam(this) >> 0x14) & 0xFF;
}
/* 8006B3B4-8006B3C0 .text getType__12dDoor_info_cFv */
void dDoor_info_c::getType() {
/* Nonmatching */
u8 dDoor_info_c::getType() {
return (fopAcM_GetParam(this) >> 0x08) & 0xF;
}
/* 8006B3C0-8006B3EC .text setType__12dDoor_info_cFUc */
void dDoor_info_c::setType(unsigned char) {
/* Nonmatching */
void dDoor_info_c::setType(u8 type) {
if (type >= 0x10)
return;
fopAcM_SetParam(this, fopAcM_GetParam(this) & ~(0xF << 0x08));
fopAcM_SetParam(this, fopAcM_GetParam(this) | ((type << 0x08) & (0xFF << 0x08)));
}
/* 8006B3EC-8006B3F8 .text getEventNo__12dDoor_info_cFv */
void dDoor_info_c::getEventNo() {
/* Nonmatching */
u8 dDoor_info_c::getEventNo() {
return (fopAcM_GetParam(this) >> 0x0C) & 0xFF;
}
/* 8006B3F8-8006B404 .text getFRoomNo__12dDoor_info_cFv */
void dDoor_info_c::getFRoomNo() {
/* Nonmatching */
u8 dDoor_info_c::getFRoomNo() {
return orig.angle.x & 0x3F;
}
/* 8006B404-8006B410 .text getBRoomNo__12dDoor_info_cFv */
void dDoor_info_c::getBRoomNo() {
/* Nonmatching */
u8 dDoor_info_c::getBRoomNo() {
return (orig.angle.x >> 0x06) & 0x3F;
}
/* 8006B410-8006B41C .text getShipId__12dDoor_info_cFv */
void dDoor_info_c::getShipId() {
/* Nonmatching */
u8 dDoor_info_c::getShipId() {
return orig.angle.z & 0x3F;
}
/* 8006B41C-8006B428 .text getArg1__12dDoor_info_cFv */
void dDoor_info_c::getArg1() {
/* Nonmatching */
u8 dDoor_info_c::getArg1() {
return (orig.angle.z >> 0x08) & 0xFF;
}
/* 8006B428-8006B4C4 .text adjoinPlayer__12dDoor_info_cFv */
void dDoor_info_c::adjoinPlayer() {
/* Nonmatching */
BOOL dDoor_info_c::adjoinPlayer() {
int frontRoomNo = getFRoomNo();
int backRoomNo = getBRoomNo();
if (frontRoomNo == 0x3F || backRoomNo == 0x3F)
return TRUE;
if (dComIfGp_roomControl_checkRoomDisp(frontRoomNo) ||
dComIfGp_roomControl_checkRoomDisp(backRoomNo))
{
return TRUE;
}
return FALSE;
}
/* 8006B4C4-8006B554 .text getViewRoomNo__12dDoor_info_cFv */
@@ -107,7 +120,7 @@ void dDoor_info_c::initOpenDemo(int) {
}
/* 8006BC50-8006BDBC .text checkArea__12dDoor_info_cFfff */
void dDoor_info_c::checkArea(float, float, float) {
void dDoor_info_c::checkArea(f32, f32, f32) {
/* Nonmatching */
}
@@ -137,13 +150,28 @@ void dDoor_info_c::setGoal() {
}
/* 8006C1D8-8006C200 .text setPlayerAngle__12dDoor_info_cFi */
void dDoor_info_c::setPlayerAngle(int) {
/* Nonmatching */
void dDoor_info_c::setPlayerAngle(BOOL flip) {
s16 angle = shape_angle.y;
daPy_py_c* link = (daPy_py_c*)dComIfGp_getLinkPlayer();
if (flip) {
angle += 0x7FFF;
}
link->changeDemoMoveAngle(angle);
}
/* 8006C200-8006C2BC .text setPosAndAngle__12dDoor_info_cFP4cXyzs */
void dDoor_info_c::setPosAndAngle(cXyz*, short) {
/* Nonmatching */
void dDoor_info_c::setPosAndAngle(cXyz* pPos, s16 angle) {
if (mEvtInfo.checkCommandDemoAccrpt() || mEvtInfo.checkCommandDoor()) {
return;
}
if (pPos) {
mAttentionInfo.mPosition = current.pos = *pPos;
mAttentionInfo.mPosition.y += 150.0f;
mEyePos = mAttentionInfo.mPosition;
}
current.angle.y = angle;
shape_angle.y = current.angle.y;
mAngleVec.set(cM_ssin(current.angle.y), 0.0f, cM_scos(current.angle.y));
}
/* 8006C2BC-8006C388 .text smokeInit__13dDoor_smoke_cFP12dDoor_info_c */
@@ -158,17 +186,17 @@ void dDoor_smoke_c::smokeProc(dDoor_info_c*) {
/* 8006C41C-8006C448 .text smokeEnd__13dDoor_smoke_cFv */
void dDoor_smoke_c::smokeEnd() {
/* Nonmatching */
mSmokeCb.end();
}
/* 8006C448-8006C478 .text keyResLoad__12dDoor_key2_cFv */
void dDoor_key2_c::keyResLoad() {
/* Nonmatching */
dComIfG_resLoad(&mPhs, "Key");
}
/* 8006C478-8006C4A8 .text keyResDelete__12dDoor_key2_cFv */
void dDoor_key2_c::keyResDelete() {
/* Nonmatching */
dComIfG_resDelete(&mPhs, "Key");
}
/* 8006C4A8-8006C5E8 .text keyInit__12dDoor_key2_cFP12dDoor_info_c */
@@ -198,12 +226,12 @@ void dDoor_key2_c::keyCreate(int) {
/* 8006C948-8006C954 .text keyOn__12dDoor_key2_cFv */
void dDoor_key2_c::keyOn() {
/* Nonmatching */
mbEnabled = true;
}
/* 8006C954-8006C960 .text keyOff__12dDoor_key2_cFv */
void dDoor_key2_c::keyOff() {
/* Nonmatching */
mbEnabled = false;
}
/* 8006C960-8006CA10 .text calcMtx__12dDoor_key2_cFP12dDoor_info_c */
@@ -247,8 +275,11 @@ void dDoor_stop_c::create() {
}
/* 8006CE8C-8006CEA8 .text init__11dDoor_msg_cFs */
void dDoor_msg_c::init(short) {
/* Nonmatching */
void dDoor_msg_c::init(s16 param_1) {
mA = param_1;
m0 = -1;
mMsg = 0;
m8 = 0;
}
/* 8006CEA8-8006D0DC .text proc__11dDoor_msg_cFP4cXyz */
@@ -257,13 +288,19 @@ void dDoor_msg_c::proc(cXyz*) {
}
/* 8006D0DC-8006D11C .text resLoad__12dDoor_hkyo_cFv */
void dDoor_hkyo_c::resLoad() {
/* Nonmatching */
s32 dDoor_hkyo_c::resLoad() {
if (m11 == 0) {
return 4;
}
dComIfG_resLoad(&mPhs, "Hkyo");
}
/* 8006D11C-8006D154 .text resDelete__12dDoor_hkyo_cFv */
void dDoor_hkyo_c::resDelete() {
/* Nonmatching */
if (m11 == 0) {
return;
}
dComIfG_resDelete(&mPhs, "Hkyo");
}
/* 8006D154-8006D2D4 .text create__12dDoor_hkyo_cFv */
@@ -272,17 +309,17 @@ void dDoor_hkyo_c::create() {
}
/* 8006D2D4-8006D3A8 .text setAnm__12dDoor_hkyo_cFUc */
void dDoor_hkyo_c::setAnm(unsigned char) {
void dDoor_hkyo_c::setAnm(u8) {
/* Nonmatching */
}
/* 8006D3A8-8006D3B4 .text init__12dDoor_hkyo_cFv */
void dDoor_hkyo_c::init() {
/* Nonmatching */
mAnmIdx = 0;
}
/* 8006D3B4-8006D464 .text calcMtx__12dDoor_hkyo_cFP12dDoor_info_cf */
void dDoor_hkyo_c::calcMtx(dDoor_info_c*, float) {
void dDoor_hkyo_c::calcMtx(dDoor_info_c*, f32) {
/* Nonmatching */
}
@@ -307,7 +344,6 @@ void dDoor_hkyo_c::onFirst() {
}
/* 8006D7E8-8006D800 .text chkStart__12dDoor_hkyo_cFv */
void dDoor_hkyo_c::chkStart() {
/* Nonmatching */
BOOL dDoor_hkyo_c::chkStart() {
return daPy_getPlayerActorClass()->getGrabUpEnd();
}
+1 -1
View File
@@ -207,7 +207,7 @@ int createRoomScene(int param_0) {
}
/* 80040E38-80040E6C .text checkRoomDisp__20dStage_roomControl_cCFi */
bool dStage_roomControl_c::checkRoomDisp(int i_roomNo) const {
BOOL dStage_roomControl_c::checkRoomDisp(int i_roomNo) const {
if (checkStatusFlag(i_roomNo, 8)) {
return false;
}