Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions config/RSBE01_02/rels/st_tengan/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,31 @@ global_destructor_chain.c:
.dtors start:0x00000000 end:0x00000008
.bss start:0x00000000 end:0x00000004

mo_stage/st_tengan/st_tengan.cpp:
.text start:0x00000070 end:0x00006348
.ctors start:0x00000000 end:0x00000004
.rodata start:0x00000000 end:0x000000F8
.data start:0x00000000 end:0x00000838
.bss start:0x00000008 end:0x00000018

mo_stage/st_tengan/gr_tengan.cpp:
.text start:0x00006348 end:0x000065BC
.data start:0x00000838 end:0x00000AB8

mo_stage/st_tengan/gr_tengan_bg.cpp:
.text start:0x000065BC end:0x000067EC
.data start:0x00000AB8 end:0x00000DD0

mo_stage/st_tengan/gr_tengan_floor.cpp:
.text start:0x000067EC end:0x00007174
.rodata start:0x000000F8 end:0x00000108
.data start:0x00000DD0 end:0x00000FF0

mo_stage/st_tengan/gr_tengan_ashiba.cpp:
.text start:0x00007174 end:0x000077B4
.rodata start:0x00000108 end:0x00000114
.data start:0x00000FF0 end:0x00001208

mo_stage/mo_stage.cpp:
.text start:0x000077B4 end:0x00007850
.data start:0x00001208 end:0x00001215
Expand Down
149 changes: 74 additions & 75 deletions config/RSBE01_02/rels/st_tengan/symbols.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
__register_global_object = .text:0x00000000; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x0000001C; // type:function size:0x54 scope:global
fn_60_70 = .text:0x00000070; // type:function size:0x34
fn_60_A4 = .text:0x000000A4; // type:function size:0x1FC
fn_60_2A0 = .text:0x000002A0; // type:function size:0x198
fn_60_438 = .text:0x00000438; // type:function size:0x8
fn_60_440 = .text:0x00000440; // type:function size:0x1640
fn_60_1A80 = .text:0x00001A80; // type:function size:0x8
fn_60_1A88 = .text:0x00001A88; // type:function size:0x148
fn_60_1BD0 = .text:0x00001BD0; // type:function size:0xD0
fn_60_1CA0 = .text:0x00001CA0; // type:function size:0xDC
fn_60_1D7C = .text:0x00001D7C; // type:function size:0x8
fn_60_1D84 = .text:0x00001D84; // type:function size:0x8
fn_60_1D8C = .text:0x00001D8C; // type:function size:0x2A4
fn_60_2030 = .text:0x00002030; // type:function size:0xFC
fn_60_212C = .text:0x0000212C; // type:function size:0x8
fn_60_2134 = .text:0x00002134; // type:function size:0x1B0
fn_60_22E4 = .text:0x000022E4; // type:function size:0x8
fn_60_22EC = .text:0x000022EC; // type:function size:0x8
fn_60_22F4 = .text:0x000022F4; // type:function size:0x8
fn_60_22FC = .text:0x000022FC; // type:function size:0x10
create__8stTenganFv = .text:0x00000070; // type:function size:0x34
__ct__8stTenganFv = .text:0x000000A4; // type:function size:0x1FC
__dt__8stTenganFv = .text:0x000002A0; // type:function size:0x198
loading__8stTenganFv = .text:0x00000438; // type:function size:0x8
createObj__8stTenganFv = .text:0x00000440; // type:function size:0x1640
setStageData__6GroundFPv = .text:0x00001A80; // type:function size:0x8
createObjSkyLaser__8stTenganFi = .text:0x00001A88; // type:function size:0x148
createObjEnkei__8stTenganFi = .text:0x00001BD0; // type:function size:0xD0
createObjBg__8stTenganFi = .text:0x00001CA0; // type:function size:0xDC
setPosDialgaWork__10grTenganBgFP5Vec3f = .text:0x00001D7C; // type:function size:0x8
setPosAshibaWork__10grTenganBgFP5Vec3f = .text:0x00001D84; // type:function size:0x8
createObjDialga__8stTenganFi = .text:0x00001D8C; // type:function size:0x2A4
createObjAshiba__8stTenganFi = .text:0x00002030; // type:function size:0xFC
setPosLimitWork__14grTenganAshibaFP5Vec3f = .text:0x0000212C; // type:function size:0x8
createObjFloor__8stTenganFi = .text:0x00002134; // type:function size:0x1B0
setFrameWork__13grTenganFloorFPf = .text:0x000022E4; // type:function size:0x8
setStateWork__13grTenganFloorFPUc = .text:0x000022EC; // type:function size:0x8
setType__13grTenganFloorFUc = .text:0x000022F4; // type:function size:0x8
update__8stTenganFf = .text:0x000022FC; // type:function size:0x10
fn_60_230C = .text:0x0000230C; // type:function size:0x958
fn_60_2C64 = .text:0x00002C64; // type:function size:0x154
fn_60_2DB8 = .text:0x00002DB8; // type:function size:0xFC
eventRebuildStageUpdate__8stTenganFv = .text:0x00002DB8; // type:function size:0xFC
fn_60_2EB4 = .text:0x00002EB4; // type:function size:0x2A4
fn_60_3158 = .text:0x00003158; // type:function size:0x37C
fn_60_34D4 = .text:0x000034D4; // type:function size:0x668
Expand All @@ -34,8 +34,8 @@ fn_60_4670 = .text:0x00004670; // type:function size:0x6D8
fn_60_4D48 = .text:0x00004D48; // type:function size:0x40C
fn_60_5154 = .text:0x00005154; // type:function size:0x3C8
fn_60_551C = .text:0x0000551C; // type:function size:0x198
fn_60_56B4 = .text:0x000056B4; // type:function size:0x9E4
fn_60_6098 = .text:0x00006098; // type:function size:0x78
updateEvent__8stTenganFf = .text:0x000056B4; // type:function size:0x9E4
getZoneLightSetIndex__8stTenganFP5Vec3f = .text:0x00006098; // type:function size:0x78
fn_60_6110 = .text:0x00006110; // type:function size:0x4
fn_60_6114 = .text:0x00006114; // type:function size:0x8
fn_60_611C = .text:0x0000611C; // type:function size:0x8
Expand All @@ -48,8 +48,8 @@ fn_60_6148 = .text:0x00006148; // type:function size:0x8
fn_60_6150 = .text:0x00006150; // type:function size:0x8
fn_60_6158 = .text:0x00006158; // type:function size:0xC
fn_60_6164 = .text:0x00006164; // type:function size:0xC
fn_60_6170 = .text:0x00006170; // type:function size:0x10
fn_60_6180 = .text:0x00006180; // type:function size:0x14
setBgmChange__5StageFfbUl = .text:0x00006170; // type:function size:0x10
getBgmChangeID__5StageFPUlPf = .text:0x00006180; // type:function size:0x14
fn_60_6194 = .text:0x00006194; // type:function size:0x8
fn_60_619C = .text:0x0000619C; // type:function size:0x8
fn_60_61A4 = .text:0x000061A4; // type:function size:0x8
Expand All @@ -58,7 +58,7 @@ fn_60_61B4 = .text:0x000061B4; // type:function size:0x8
fn_60_61BC = .text:0x000061BC; // type:function size:0x4
fn_60_61C0 = .text:0x000061C0; // type:function size:0x1C
fn_60_61DC = .text:0x000061DC; // type:function size:0x8
fn_60_61E4 = .text:0x000061E4; // type:function size:0x8
getAIRange__5StageFv = .text:0x000061E4; // type:function size:0x8
fn_60_61EC = .text:0x000061EC; // type:function size:0x8
fn_60_61F4 = .text:0x000061F4; // type:function size:0x8
fn_60_61FC = .text:0x000061FC; // type:function size:0xC
Expand All @@ -68,47 +68,46 @@ fn_60_6214 = .text:0x00006214; // type:function size:0x8
fn_60_621C = .text:0x0000621C; // type:function size:0x8
fn_60_6224 = .text:0x00006224; // type:function size:0x8
fn_60_622C = .text:0x0000622C; // type:function size:0xC
fn_60_6238 = .text:0x00006238; // type:function size:0x64
fn_60_629C = .text:0x0000629C; // type:function size:0x74
fn_60_6310 = .text:0x00006310; // type:function size:0x34
fn_60_6344 = .text:0x00006344; // type:function size:0x4
fn_60_6348 = .text:0x00006348; // type:function size:0xD4
fn_60_641C = .text:0x0000641C; // type:function size:0x8
fn_60_6424 = .text:0x00006424; // type:function size:0x4C
fn_60_6470 = .text:0x00006470; // type:function size:0x58
fn_60_64C8 = .text:0x000064C8; // type:function size:0x4
fn_60_64CC = .text:0x000064CC; // type:function size:0x5C
fn_60_6528 = .text:0x00006528; // type:function size:0x8
fn_60_6530 = .text:0x00006530; // type:function size:0x8
fn_60_6538 = .text:0x00006538; // type:function size:0x8
fn_60_6540 = .text:0x00006540; // type:function size:0x4
fn_60_6544 = .text:0x00006544; // type:function size:0x4
fn_60_6548 = .text:0x00006548; // type:function size:0x10
fn_60_6558 = .text:0x00006558; // type:function size:0x10
fn_60_6568 = .text:0x00006568; // type:function size:0xC
fn_60_6574 = .text:0x00006574; // type:function size:0x8
fn_60_657C = .text:0x0000657C; // type:function size:0x4
fn_60_6580 = .text:0x00006580; // type:function size:0x8
fn_60_6588 = .text:0x00006588; // type:function size:0x1C
fn_60_65A4 = .text:0x000065A4; // type:function size:0x8
fn_60_65AC = .text:0x000065AC; // type:function size:0x8
fn_60_65B4 = .text:0x000065B4; // type:function size:0x8
fn_60_65BC = .text:0x000065BC; // type:function size:0xD0
fn_60_668C = .text:0x0000668C; // type:function size:0x58
fn_60_66E4 = .text:0x000066E4; // type:function size:0x108
fn_60_67EC = .text:0x000067EC; // type:function size:0x104
fn_60_68F0 = .text:0x000068F0; // type:function size:0x58
fn_60_6948 = .text:0x00006948; // type:function size:0x74
fn_60_69BC = .text:0x000069BC; // type:function size:0x340
fn_60_6CFC = .text:0x00006CFC; // type:function size:0x2C
fn_60_6D28 = .text:0x00006D28; // type:function size:0x4
fn_60_6D2C = .text:0x00006D2C; // type:function size:0x448
fn_60_7174 = .text:0x00007174; // type:function size:0xBC
fn_60_7230 = .text:0x00007230; // type:function size:0xBC
fn_60_72EC = .text:0x000072EC; // type:function size:0x58
fn_60_7344 = .text:0x00007344; // type:function size:0x74
fn_60_73B8 = .text:0x000073B8; // type:function size:0x354
fn_60_770C = .text:0x0000770C; // type:function size:0xA8
__sinit_\st_tengan_cpp = .text:0x00006238; // type:function size:0x64
__dt__29stClassInfoImpl<21,8stTengan>Fv = .text:0x0000629C; // type:function size:0x74
create__29stClassInfoImpl<21,8stTengan>Fv = .text:0x00006310; // type:function size:0x34
preload__29stClassInfoImpl<21,8stTengan>Fv = .text:0x00006344; // type:function size:0x4
create__8grTenganFiPCcPCc = .text:0x00006348; // type:function size:0xD4
setMdlIndex__6GroundFi = .text:0x0000641C; // type:function size:0x8
__ct__8grTenganFPCc = .text:0x00006424; // type:function size:0x4C
__dt__8grTenganFv = .text:0x00006470; // type:function size:0x58
update__8grTenganFf = .text:0x000064C8; // type:function size:0x4
setTgtNode__8grTenganFPCc = .text:0x000064CC; // type:function size:0x5C
getTgtNode__8grTenganFv = .text:0x00006528; // type:function size:0x8
adventureEventGetItem__6GroundFiP13stTriggerData = .text:0x00006530; // type:function size:0x8
getInitializeInfo__6GroundFi = .text:0x00006538; // type:function size:0x8
setInitializeInfo__6GroundFi = .text:0x00006540; // type:function size:0x4
setInitializeFlag__6GroundFv = .text:0x00006544; // type:function size:0x4
disableCalcCollision__6GroundFv = .text:0x00006548; // type:function size:0x10
enableCalcCollision__6GroundFv = .text:0x00006558; // type:function size:0x10
isEnableCalcCollision__6GroundFv = .text:0x00006568; // type:function size:0xC
getMdlIndex__6GroundFv = .text:0x00006574; // type:function size:0x8
initStageData__6GroundFv = .text:0x0000657C; // type:function size:0x4
getStageData__6GroundFv = .text:0x00006580; // type:function size:0x8
getModelCount__6GroundFv = .text:0x00006588; // type:function size:0x1C
getTransparencyFlag__9grGimmickFv = .text:0x000065A4; // type:function size:0x8
getGimmickData__9grGimmickFv = .text:0x000065AC; // type:function size:0x8
setGimmickData__9grGimmickFPv = .text:0x000065B4; // type:function size:0x8
create__10grTenganBgFiPCcPCc = .text:0x000065BC; // type:function size:0xD0
__dt__10grTenganBgFv = .text:0x0000668C; // type:function size:0x58
update__10grTenganBgFf = .text:0x000066E4; // type:function size:0x108
create__13grTenganFloorFiPCcPCc = .text:0x000067EC; // type:function size:0x104
__dt__13grTenganFloorFv = .text:0x000068F0; // type:function size:0x58
update__13grTenganFloorFf = .text:0x00006948; // type:function size:0x74
updateActive__13grTenganFloorFf = .text:0x000069BC; // type:function size:0x340
updatePreBuild__13grTenganFloorFf = .text:0x00006CFC; // type:function size:0x30
setMotion__13grTenganFloorFUcbUlPf = .text:0x00006D2C; // type:function size:0x448
create__14grTenganAshibaFiPCcPCc = .text:0x00007174; // type:function size:0xBC
__ct__14grTenganAshibaFPCc = .text:0x00007230; // type:function size:0xBC
__dt__14grTenganAshibaFv = .text:0x000072EC; // type:function size:0x58
update__14grTenganAshibaFf = .text:0x00007344; // type:function size:0x74
updateMove__14grTenganAshibaFf = .text:0x000073B8; // type:function size:0x354
updateCallBack__14grTenganAshibaFf = .text:0x0000770C; // type:function size:0xA8
_prolog = .text:0x000077B4; // type:function size:0x48 scope:global
_epilog = .text:0x000077FC; // type:function size:0x48 scope:global
_unresolved = .text:0x00007844; // type:function size:0xC scope:global
Expand Down Expand Up @@ -142,38 +141,38 @@ jumptable_60_data_4B8 = .data:0x000004B8; // type:object size:0x1C scope:local
lbl_60_data_4D8 = .data:0x000004D8; // type:object size:0x238
lbl_60_data_710 = .data:0x00000710; // type:object size:0x9 data:string
lbl_60_data_71C = .data:0x0000071C; // type:object size:0x24
lbl_60_data_740 = .data:0x00000740; // type:object size:0x8
__RTTI__8stTengan = .data:0x00000740; // type:object size:0x8
lbl_60_data_748 = .data:0x00000748; // type:object size:0x8 data:string
lbl_60_data_750 = .data:0x00000750; // type:object size:0x20
lbl_60_data_770 = .data:0x00000770; // type:object size:0x8
__RTTI__7stMelee = .data:0x00000770; // type:object size:0x8
lbl_60_data_778 = .data:0x00000778; // type:object size:0x10 data:string
lbl_60_data_788 = .data:0x00000788; // type:object size:0x18
lbl_60_data_7A0 = .data:0x000007A0; // type:object size:0x8
lbl_60_data_7A8 = .data:0x000007A8; // type:object size:0x6 data:string
lbl_60_data_7B0 = .data:0x000007B0; // type:object size:0x10
lbl_60_data_7C0 = .data:0x000007C0; // type:object size:0x8
lbl_60_data_7C8 = .data:0x000007C8; // type:object size:0x7 data:string
lbl_60_data_7D0 = .data:0x000007D0; // type:object size:0x8
__RTTI__6gfTask = .data:0x000007D0; // type:object size:0x8
lbl_60_data_7D8 = .data:0x000007D8; // type:object size:0x14
lbl_60_data_7EC = .data:0x000007EC; // type:object size:0x1E data:string
lbl_60_data_80C = .data:0x0000080C; // type:object size:0xC
lbl_60_data_818 = .data:0x00000818; // type:object size:0x8
lbl_60_data_820 = .data:0x00000820; // type:object size:0xC data:string
lbl_60_data_830 = .data:0x00000830; // type:object size:0x8
lbl_60_data_838 = .data:0x00000838; // type:object size:0x8
lbl_60_data_840 = .data:0x00000840; // type:object size:0x1C8
__vt__8grTengan = .data:0x00000840; // type:object size:0x1C8
lbl_60_data_A08 = .data:0x00000A08; // type:object size:0x9 data:string
lbl_60_data_A14 = .data:0x00000A14; // type:object size:0x24
lbl_60_data_A38 = .data:0x00000A38; // type:object size:0x8
__RTTI__8grTengan = .data:0x00000A38; // type:object size:0x8
lbl_60_data_A40 = .data:0x00000A40; // type:object size:0xB data:string
lbl_60_data_A4C = .data:0x00000A4C; // type:object size:0x1C
lbl_60_data_A68 = .data:0x00000A68; // type:object size:0x8
__RTTI__10grYakumono = .data:0x00000A68; // type:object size:0x8
lbl_60_data_A70 = .data:0x00000A70; // type:object size:0xA data:string
lbl_60_data_A7C = .data:0x00000A7C; // type:object size:0x14
lbl_60_data_A90 = .data:0x00000A90; // type:object size:0x8
__RTTI__9grGimmick = .data:0x00000A90; // type:object size:0x8
lbl_60_data_A98 = .data:0x00000A98; // type:object size:0x7 data:string
lbl_60_data_AA0 = .data:0x00000AA0; // type:object size:0x10
lbl_60_data_AB0 = .data:0x00000AB0; // type:object size:0x8
__RTTI__6Ground = .data:0x00000AB0; // type:object size:0x8
lbl_60_data_AB8 = .data:0x00000AB8; // type:object size:0x48
lbl_60_data_B00 = .data:0x00000B00; // type:object size:0x1D0
lbl_60_data_CD0 = .data:0x00000CD0; // type:object size:0xB data:string
Expand All @@ -186,7 +185,7 @@ lbl_60_data_FE8 = .data:0x00000FE8; // type:object size:0x8
lbl_60_data_FF0 = .data:0x00000FF0; // type:object size:0x1D4
lbl_60_data_11C4 = .data:0x000011C4; // type:object size:0xF data:string
lbl_60_data_11D4 = .data:0x000011D4; // type:object size:0x2C
lbl_60_data_1200 = .data:0x00001200; // type:object size:0x8
__RTTI__14grTenganAshiba = .data:0x00001200; // type:object size:0x8
lbl_60_data_1208 = .data:0x00001208; // type:object size:0xD scope:local align:4 data:string
HomeBtnIcon = .data:0x00001220; // type:object size:0x18C0 scope:global align:32
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
Expand Down
8 changes: 7 additions & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1373,7 +1373,13 @@ def MatchingFor(*versions):
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [],
"objects": [
Object(NonMatching, "mo_stage/st_tengan/st_tengan.cpp"),
Object(Matching, "mo_stage/st_tengan/gr_tengan.cpp"),
Object(Matching, "mo_stage/st_tengan/gr_tengan_bg.cpp"),
Object(Matching, "mo_stage/st_tengan/gr_tengan_floor.cpp"),
Object(Matching, "mo_stage/st_tengan/gr_tengan_ashiba.cpp"),
],
},
{
"lib": "st_village",
Expand Down
26 changes: 26 additions & 0 deletions include/st_tengan/gr_tengan.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#include <gr/gr_yakumono.h>

const float EFF_SOMETHING = 0.0f;
const float EFF_FRAME_MAX1 = 2540.0f;
const float EFF_FRAME_MAX2 = 6100.0f;
class grTengan : public grYakumono {
protected:
char m_tgtNode[0x80];
// float unk_float;
// u8 type;
// u8 step;
// u16 padding;

public:
grTengan(const char* taskName);
virtual void update(float deltaFrame);
virtual ~grTengan();

virtual void setTgtNode(const char *tgtNode);
virtual char* getTgtNode();

static grTengan* create(int mdlIndex, const char* tgtNodeName, const char* taskName);

};
30 changes: 30 additions & 0 deletions include/st_tengan/gr_tengan_ashiba.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#pragma once

#include <gr/gr_yakumono.h>
#include <st_tengan/gr_tengan.h>

class grTenganAshiba : public grTengan {
protected:
u8 m_ashibaState;
float m_ashibaTimer;
Vec3f *m_posLimitWork;
Vec3f m_ashibaPos;
float m_ashibaPosY;
float m_speed;
bool m_isMovingUp;
u8 unk1F1;

public:
grTenganAshiba(const char* taskName);
virtual ~grTenganAshiba();
virtual void update(float deltaFrame);
virtual void updateMove(float deltaFrame);
virtual void updateCallBack(float deltaFrame);

//virtual void setTgtNode(char *tgtNode);
//virtual char* getTgtNode();
virtual void setPosLimitWork(Vec3f* pos);

static grTenganAshiba* create(int mdlIndex, const char* tgtNodeName, const char* taskName);

};
23 changes: 23 additions & 0 deletions include/st_tengan/gr_tengan_bg.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#pragma once

#include <gr/gr_yakumono.h>
#include <st_tengan/gr_tengan.h>

class grTenganBg : public grTengan {
protected:
Vec3f *posDialgaWork;
Vec3f *posAshibaWork;

public:
grTenganBg(const char* taskName);
virtual ~grTenganBg();
virtual void update(float deltaFrame);

//virtual void setTgtNode(char *tgtNode);
//virtual char* getTgtNode();
virtual void setPosDialgaWork(Vec3f* pos);
virtual void setPosAshibaWork(Vec3f* pos);

static grTenganBg* create(int mdlIndex, const char* tgtNodeName, const char* taskName);

};
38 changes: 38 additions & 0 deletions include/st_tengan/gr_tengan_floor.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#pragma once

#include <gr/gr_yakumono.h>
#include <st_tengan/gr_tengan.h>

class grTenganFloor : public grYakumono {
protected:

public:
Vec3f m_unused;
u8 m_state;
float m_stateTimer;
float* m_frameWork;
u8* m_stateWork;
u8 m_type;
u8 unk16d;
float unk170;
u8 m_animId;
float m_animTimer;

grTenganFloor(const char* taskName);
virtual ~grTenganFloor();
virtual void update(float deltaFrame);
virtual void updateActive(float deltaFrame);
virtual void updatePreBuild(float deltaFrame);
virtual void setMotion(u8 animId, bool shouldLoop, u32 unk3, float* frameCount);
virtual void setFrameWork(float* frameWork);
virtual void setStateWork(u8* stateWork);
virtual void setType(u8 type);

//virtual void setTgtNode(char *tgtNode);
//virtual char* getTgtNode();
//virtual void setPosDialgaWork(Vec3f* pos);
//virtual void setPosAshibaWork(Vec3f* pos);

static grTenganFloor* create(int mdlIndex, const char* tgtNodeName, const char* taskName);

};
Loading
Loading