summaryrefslogtreecommitdiff
path: root/rel
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-04-21 05:27:47 -0700
committerGitHub <noreply@github.com>2024-04-21 15:27:47 +0300
commitb24b477fc4b641e58069455cdabfe80d5d0995b4 (patch)
tree9fa859e8d7bd9be5129191d349cad1da2f61f1a5 /rel
parent151c5099abdddb91c8c4cf3565c0c5075a0e0146 (diff)
d_a_tag_firewall done (#2137)
* mostly fix TVec3 ctors * d_a_tag_firewall done * remove asm
Diffstat (limited to 'rel')
-rw-r--r--rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.cpp573
1 files changed, 198 insertions, 375 deletions
diff --git a/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.cpp b/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.cpp
index d1a4a583aa..a689379d60 100644
--- a/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.cpp
+++ b/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.cpp
@@ -1,421 +1,244 @@
-//
-// Generated By: dol2asm
-// Translation Unit: d_a_tag_firewall
-//
+/**
+ * d_a_tag_firewall.cpp
+ *
+ */
#include "rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall.h"
-#include "dol2asm.h"
-
-//
-// Types:
-//
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
-};
-
-struct daTag_FWall_c {
- /* 80D58940 */ void execute();
- /* 80D59078 */ bool _delete();
- /* 80D590A8 */ void create();
-};
-
-struct Vec {};
-
-struct cXyz {
- /* 80266B34 */ void operator-(Vec const&) const;
- /* 80D5901C */ ~cXyz();
- /* 80D594B0 */ cXyz();
-};
-
-struct dVibration_c {
- /* 8006FA24 */ void StartShock(int, int, cXyz);
-};
-
-struct dPa_levelEcallBack {};
-
-struct dKy_tevstr_c {};
-
-struct csXyz {};
-
-struct _GXColor {};
-
-struct dPa_control_c {
- struct level_c {
- /* 8004B918 */ void getEmitter(u32);
- };
-
- /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
- cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
- _GXColor const*, cXyz const*, f32);
-};
-
-struct dCcD_Stts {
- /* 80083860 */ void Init(int, int, fopAc_ac_c*);
-};
-
-struct dCcD_SrcSph {};
-
-struct dCcD_Sph {
- /* 80084A34 */ void Set(dCcD_SrcSph const&);
- /* 80D592D0 */ ~dCcD_Sph();
- /* 80D5939C */ dCcD_Sph();
-};
-
-struct dCcD_GStts {
- /* 80083760 */ dCcD_GStts();
-};
-
-struct dCcD_GObjInf {
- /* 80083A28 */ dCcD_GObjInf();
- /* 800840E4 */ ~dCcD_GObjInf();
-};
-
-struct dCamera_c {
- /* 80181E64 */ void Eye();
-};
-
-struct cM3dGSph {
- /* 8026F648 */ void SetC(cXyz const&);
- /* 8026F708 */ void SetR(f32);
- /* 80D59420 */ ~cM3dGSph();
-};
-
-struct cM3dGAab {
- /* 80D59468 */ ~cM3dGAab();
-};
-
-struct cCcD_Obj {};
-
-struct cCcS {
- /* 80264BA8 */ void Set(cCcD_Obj*);
-};
-
-struct JAISoundID {};
-
-struct Z2SeMgr {
- /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
-};
-
-struct Z2AudioMgr {
- static u8 mAudioMgrPtr[4 + 4 /* padding */];
-};
+#include "cmath.h"
+#include "d/a/d_a_player.h"
+#include "d/com/d_com_inf_game.h"
+#include "d/d_bomb.h"
struct Tag_FWall_n {
- static u8 cc_sph_src[64];
- static u8 game_over_eff_name[8];
+ static dCcD_SrcSph cc_sph_src;
+ static u16 game_over_eff_name[];
};
-//
-// Forward References:
-//
-
-extern "C" static bool daTag_FWall_Draw__FP13daTag_FWall_c();
-extern "C" void execute__13daTag_FWall_cFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" static void daTag_FWall_Execute__FP13daTag_FWall_c();
-extern "C" bool _delete__13daTag_FWall_cFv();
-extern "C" static void daTag_FWall_IsDelete__FP13daTag_FWall_c();
-extern "C" static bool daTag_FWall_Delete__FP13daTag_FWall_c();
-extern "C" void create__13daTag_FWall_cFv();
-extern "C" void __dt__8dCcD_SphFv();
-extern "C" void __ct__8dCcD_SphFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" static void daTag_FWall_Create__FP13daTag_FWall_c();
-extern "C" u8 cc_sph_src__11Tag_FWall_n[64];
-extern "C" u8 game_over_eff_name__11Tag_FWall_n[8];
-
-//
-// External References:
-//
-
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv();
-extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void StartShock__12dVibration_cFii4cXyz();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void dCam_getBody__Fv();
-extern "C" void Eye__9dCamera_cFv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_chaseUC__FPUcUcUc();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __dl__FPv();
-extern "C" void PSVECSquareMag();
-extern "C" void __construct_array();
-extern "C" void _savegpr_16();
-extern "C" void _restgpr_16();
-extern "C" extern void* g_fopAc_Method[8];
-extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u32 __float_nan;
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-
-//
-// Declarations:
-//
-
/* 80D58938-80D58940 000078 0008+00 1/0 0/0 0/0 .text daTag_FWall_Draw__FP13daTag_FWall_c
*/
-static bool daTag_FWall_Draw(daTag_FWall_c* param_0) {
- return true;
+static int daTag_FWall_Draw(daTag_FWall_c* i_this) {
+ return 1;
}
-/* ############################################################################################## */
-/* 80D594DC-80D594E0 000000 0004+00 1/1 0/0 0/0 .rodata @3983 */
-SECTION_RODATA static u8 const lit_3983[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80D594DC, &lit_3983);
-
-/* 80D594E0-80D594E4 000004 0004+00 0/1 0/0 0/0 .rodata @3984 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3984 = 1.0f;
-COMPILER_STRIP_GATE(0x80D594E0, &lit_3984);
-#pragma pop
-
-/* 80D594E4-80D594E8 000008 0004+00 0/1 0/0 0/0 .rodata @3985 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3985 = -1.0f;
-COMPILER_STRIP_GATE(0x80D594E4, &lit_3985);
-#pragma pop
-
-/* 80D594E8-80D594EC 00000C 0004+00 0/1 0/0 0/0 .rodata @3986 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3986 = 90.0f;
-COMPILER_STRIP_GATE(0x80D594E8, &lit_3986);
-#pragma pop
-
-/* 80D594EC-80D594F4 000010 0008+00 0/1 0/0 0/0 .rodata @3987 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3987[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D594EC, &lit_3987);
-#pragma pop
-
-/* 80D594F4-80D594FC 000018 0008+00 0/1 0/0 0/0 .rodata @3988 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3988[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D594F4, &lit_3988);
-#pragma pop
-
-/* 80D594FC-80D59504 000020 0008+00 0/1 0/0 0/0 .rodata @3989 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3989[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D594FC, &lit_3989);
-#pragma pop
-
-/* 80D59504-80D59508 000028 0004+00 0/1 0/0 0/0 .rodata @3990 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3990 = 250.0f;
-COMPILER_STRIP_GATE(0x80D59504, &lit_3990);
-#pragma pop
-
-/* 80D59508-80D5950C 00002C 0004+00 0/1 0/0 0/0 .rodata @3991 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3991 = 1000.0f;
-COMPILER_STRIP_GATE(0x80D59508, &lit_3991);
-#pragma pop
-
/* 80D5950C-80D5954C 000000 0040+00 1/1 0/0 0/0 .data cc_sph_src__11Tag_FWall_n */
-SECTION_DATA u8 Tag_FWall_n::cc_sph_src[64] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
+dCcD_SrcSph Tag_FWall_n::cc_sph_src = {
+ {
+ {0x0, {{0x400, 0x1, 0xC}, {0x0, 0x0}, 0x0}}, // mObj
+ {dCcD_SE_METAL, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
+ {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x2}, // mGObjTg
+ {0x0}, // mGObjCo
+ }, // mObjInf
+ {
+ {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph
+ } // mSphAttr
};
/* 80D5954C-80D59554 000040 0008+00 1/1 0/0 0/0 .data game_over_eff_name__11Tag_FWall_n
*/
-SECTION_DATA u8 Tag_FWall_n::game_over_eff_name[8] = {
- 0x84, 0xCC, 0x84, 0xCD, 0x84, 0xCE, 0x84, 0xCF,
-};
+u16 Tag_FWall_n::game_over_eff_name[] = {0x84CC, 0x84CD, 0x84CE, 0x84CF};
/* 80D595C0-80D595C4 000000 0004+00 1/1 0/0 0/0 .bss fire_leader */
-static u8 fire_leader[4];
+static daTag_FWall_c* fire_leader;
/* 80D595C4-80D595C8 000004 0004+00 2/2 0/0 0/0 .bss None */
-static u8 data_80D595C4[4];
+static u8 fire_num;
/* 80D58940-80D5901C 000080 06DC+00 1/1 0/0 0/0 .text execute__13daTag_FWall_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daTag_FWall_c::execute() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/execute__13daTag_FWall_cFv.s"
-}
-#pragma pop
-
-/* 80D5901C-80D59058 00075C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cXyz::~cXyz() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/__dt__4cXyzFv.s"
+int daTag_FWall_c::execute() {
+ cXyz cam_eye = dCam_getBody()->Eye();
+ cXyz pos;
+
+ if (mSetGameoverEff) {
+ pos.set(0.0f, 0.0f, 0.0f);
+
+ for (int i = 0; i < 4; i++) {
+ mUnkEmtrID0[i] = dComIfGp_particle_set(
+ mUnkEmtrID0[i], Tag_FWall_n::game_over_eff_name[i], &pos, NULL, NULL);
+ }
+
+ return 1;
+ }
+
+ for (int i = 0; i <= fire_num; i++) {
+ switch (mWallMode[i]) {
+ case 0:
+ mWallTimer[i] = 0;
+
+ if (field_0x568 == 0xFF) {
+ field_0x568 = i;
+
+ for (int j = 0; j <= fire_num; j++) {
+ mCcSphs[j].Set(Tag_FWall_n::cc_sph_src);
+ mCcSphs[j].SetStts(&mCcStts);
+ }
+ }
+ break;
+ case 1:
+ if (field_0x568 != 0xFF && mWallTimer[field_0x568] == mWallTimer[i]) {
+ mWallMode[i] = 3;
+ mCcSphs[i].OnAtSetBit();
+ }
+ break;
+ case 2:
+ mCcSphs[i].OnAtSetBit();
+
+ if (i == field_0x568) {
+ if (!dComIfGp_event_runCheck()) {
+ mWallTimer[field_0x568]++;
+ }
+
+ pos.set(0.0f, 0.0f, 0.0f);
+
+ if (mWallTimer[field_0x568] > 850) {
+ mUnkEmtrID2 = dComIfGp_particle_set(mUnkEmtrID2, 0x84D2, &pos, NULL, NULL);
+ }
+
+ mUnkEmtrID1 = dComIfGp_particle_set(mUnkEmtrID1, 0x84BB, &pos, NULL, NULL);
+
+ Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_BOMB_HOUSE_BURN, NULL,
+ mWallTimer[field_0x568], 0, 1.0f, 1.0f, -1.0f, -1.0f,
+ 0);
+
+ if (mWallTimer[field_0x568] >= 900) {
+ daPy_getPlayerActorClass()->onForceGameOver();
+ mSetGameoverEff = true;
+ dComIfGp_getVibration().StartShock(8, 31, cXyz(0.0f, 1.0f, 0.0f));
+ return 1;
+ }
+ } else {
+ mWallMode[i] = 3;
+ }
+ case 3:
+ if (field_0x760[i] == 0) {
+ mCcSphs[i].OnAtSetBit();
+
+ pos = mWallPos[i];
+ mCcSphs[i].SetC(pos);
+ mCcSphs[i].SetR(90.0f);
+ dComIfG_Ccsp()->Set(&mCcSphs[i]);
+ }
+
+ mUnkEmtrID0[i] =
+ dComIfGp_particle_set(mUnkEmtrID0[i], 0x84BD, &mWallPos[i], NULL, NULL);
+
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mUnkEmtrID0[i]);
+ if (emitter != NULL) {
+ pos = cam_eye - mWallPos[i];
+
+ u8 target_alpha;
+ if (pos.absXZ() < 250.0f && std::abs(pos.y) < 250.0f) {
+ target_alpha = 0;
+ } else {
+ target_alpha = 0xFF;
+ }
+
+ u8 alpha = emitter->getGlobalAlpha();
+ cLib_chaseUC(&alpha, target_alpha, 0x40);
+ emitter->setGlobalAlpha(alpha);
+
+ pos = mWallPos[i];
+ if (alpha == 0) {
+ pos.y += 1000.0f;
+ }
+
+ emitter->setGlobalTranslation(JGeometry::TVec3<f32>(pos));
+ }
+ break;
+ }
+
+ if (mExplodeTime[i] != 0 && mWallTimer[field_0x568] == mExplodeTime[i]) {
+ mExplodeTime[i] = 0;
+ dBomb_c::createNormalBombExplode(&mWallPos[i]);
+ }
+ }
+
+ return 1;
}
-#pragma pop
/* 80D59058-80D59078 000798 0020+00 1/0 0/0 0/0 .text daTag_FWall_Execute__FP13daTag_FWall_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daTag_FWall_Execute(daTag_FWall_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/daTag_FWall_Execute__FP13daTag_FWall_c.s"
+static int daTag_FWall_Execute(daTag_FWall_c* i_this) {
+ return i_this->execute();
}
-#pragma pop
/* 80D59078-80D59080 0007B8 0008+00 1/1 0/0 0/0 .text _delete__13daTag_FWall_cFv */
-bool daTag_FWall_c::_delete() {
- return true;
+int daTag_FWall_c::_delete() {
+ return 1;
}
/* 80D59080-80D590A0 0007C0 0020+00 1/0 0/0 0/0 .text daTag_FWall_IsDelete__FP13daTag_FWall_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daTag_FWall_IsDelete(daTag_FWall_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/daTag_FWall_IsDelete__FP13daTag_FWall_c.s"
+static int daTag_FWall_IsDelete(daTag_FWall_c* i_this) {
+ return i_this->_delete();
}
-#pragma pop
/* 80D590A0-80D590A8 0007E0 0008+00 1/0 0/0 0/0 .text daTag_FWall_Delete__FP13daTag_FWall_c */
-static bool daTag_FWall_Delete(daTag_FWall_c* param_0) {
- return true;
+static int daTag_FWall_Delete(daTag_FWall_c* i_this) {
+ return 1;
}
/* 80D590A8-80D592D0 0007E8 0228+00 1/1 0/0 0/0 .text create__13daTag_FWall_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daTag_FWall_c::create() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/create__13daTag_FWall_cFv.s"
-}
-#pragma pop
+int daTag_FWall_c::create() {
+ fopAcM_SetupActor(this, daTag_FWall_c);
-/* ############################################################################################## */
-/* 80D59554-80D59574 -00001 0020+00 1/0 0/0 0/0 .data l_daTag_FWall_Method */
-SECTION_DATA static void* l_daTag_FWall_Method[8] = {
- (void*)daTag_FWall_Create__FP13daTag_FWall_c,
- (void*)daTag_FWall_Delete__FP13daTag_FWall_c,
- (void*)daTag_FWall_Execute__FP13daTag_FWall_c,
- (void*)daTag_FWall_IsDelete__FP13daTag_FWall_c,
- (void*)daTag_FWall_Draw__FP13daTag_FWall_c,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
-};
+ if (fire_num == 0) {
+ field_0x568 = 0xFF;
+ fire_leader = this;
+ mCcStts.Init(0xFF, 0, this);
+ }
-/* 80D59574-80D595A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_FWall */
-SECTION_DATA extern void* g_profile_Tag_FWall[12] = {
- (void*)0xFFFFFFFD, (void*)0x0007FFFD,
- (void*)0x01F70000, (void*)&g_fpcLf_Method,
- (void*)0x00002068, (void*)NULL,
- (void*)NULL, (void*)&g_fopAc_Method,
- (void*)0x00C50000, (void*)&l_daTag_FWall_Method,
- (void*)0x00060100, (void*)NULL,
-};
+ fire_leader->mWallTimer[fire_num] = (fopAcM_GetParam(this) >> 8) & 0xFFFF;
+ fire_leader->mExplodeTime[fire_num] = current.angle.x & 0xFFFF;
+ fire_leader->field_0x65c[fire_num] = fopAcM_GetParam(this);
-/* 80D595A4-80D595B0 000098 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
+ u8 temp_r0 = fopAcM_GetParam(this) >> 0x18;
+ if (temp_r0 == 0xFF) {
+ temp_r0 = 0;
+ }
-/* 80D595B0-80D595BC 0000A4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
+ fire_leader->field_0x760[fire_num] = temp_r0;
-/* 80D592D0-80D5939C 000A10 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dCcD_Sph::~dCcD_Sph() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/__dt__8dCcD_SphFv.s"
-}
-#pragma pop
-
-/* 80D5939C-80D59420 000ADC 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm dCcD_Sph::dCcD_Sph() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/__ct__8dCcD_SphFv.s"
-}
-#pragma pop
-
-/* 80D59420-80D59468 000B60 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cM3dGSph::~cM3dGSph() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/__dt__8cM3dGSphFv.s"
-}
-#pragma pop
-
-/* 80D59468-80D594B0 000BA8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cM3dGAab::~cM3dGAab() {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/__dt__8cM3dGAabFv.s"
-}
-#pragma pop
+ fire_leader->mWallPos[fire_num] = current.pos;
+
+ if (fire_leader->field_0x65c[fire_num] != 0xFF) {
+ fire_leader->mWallMode[fire_num] = 0;
+ } else {
+ fire_leader->mWallMode[fire_num] = 1;
+ }
-/* 80D594B0-80D594B4 000BF0 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
-cXyz::cXyz() {
- /* empty function */
+ if (++fire_num > 1) {
+ return cPhs_ERROR_e;
+ }
+
+ shape_angle.x = 0;
+ current.angle.x = 0;
+ return cPhs_COMPLEATE_e;
}
/* 80D594B4-80D594D4 000BF4 0020+00 1/0 0/0 0/0 .text daTag_FWall_Create__FP13daTag_FWall_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daTag_FWall_Create(daTag_FWall_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_firewall/d_a_tag_firewall/daTag_FWall_Create__FP13daTag_FWall_c.s"
+static int daTag_FWall_Create(daTag_FWall_c* i_this) {
+ return i_this->create();
}
-#pragma pop
+
+/* 80D59554-80D59574 -00001 0020+00 1/0 0/0 0/0 .data l_daTag_FWall_Method */
+static actor_method_class l_daTag_FWall_Method = {
+ (process_method_func)daTag_FWall_Create, (process_method_func)daTag_FWall_Delete,
+ (process_method_func)daTag_FWall_Execute, (process_method_func)daTag_FWall_IsDelete,
+ (process_method_func)daTag_FWall_Draw,
+};
+
+/* 80D59574-80D595A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_FWall */
+extern actor_process_profile_definition g_profile_Tag_FWall = {
+ fpcLy_CURRENT_e,
+ 7,
+ fpcPi_CURRENT_e,
+ PROC_Tag_FWall,
+ &g_fpcLf_Method.mBase,
+ sizeof(daTag_FWall_c),
+ 0,
+ 0,
+ &g_fopAc_Method.base,
+ 197,
+ &l_daTag_FWall_Method,
+ 0x60100,
+ fopAc_ACTOR_e,
+ fopAc_CULLBOX_0_e,
+}; \ No newline at end of file