Merge branch 'main' into main
This commit is contained in:
commit
83df5dfe18
110 changed files with 11426 additions and 1767 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -10,4 +10,4 @@ orig/*/*
|
||||||
!orig/*/.gitkeep
|
!orig/*/.gitkeep
|
||||||
/*.txt
|
/*.txt
|
||||||
ctx.c
|
ctx.c
|
||||||
tools/output/*
|
tools/output/*
|
||||||
|
|
@ -9,7 +9,7 @@ Sections:
|
||||||
REL/executor.c:
|
REL/executor.c:
|
||||||
.text start:0x00000000 end:0x000000A0
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/bootDll/bootDll.c:
|
REL/bootDll/main.c:
|
||||||
.text start:0x000000A0 end:0x00002944
|
.text start:0x000000A0 end:0x00002944
|
||||||
.rodata start:0x00000000 end:0x000000DC
|
.rodata start:0x00000000 end:0x000000DC
|
||||||
.data start:0x00000000 end:0x000000A0
|
.data start:0x00000000 end:0x000000A0
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,9 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/m405Dll/main.c:
|
||||||
|
.text start:0x00000000 end:0x0000B734
|
||||||
|
.rodata start:0x00000000 end:0x000001F0
|
||||||
|
.data start:0x00000000 end:0x000004B4
|
||||||
|
.bss start:0x00000000 end:0x0000079C
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,24 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/m406Dll/main.c:
|
||||||
|
.text start:0x000000A0 end:0x00002308
|
||||||
|
.rodata start:0x00000000 end:0x00000080
|
||||||
|
.data start:0x00000000 end:0x000000F0
|
||||||
|
.bss start:0x00000000 end:0x00000030
|
||||||
|
|
||||||
|
REL/m406Dll/map.c:
|
||||||
|
.text start:0x00002308 end:0x0000D65C
|
||||||
|
.rodata start:0x00000080 end:0x000002B8
|
||||||
|
.data start:0x000000F0 end:0x00000960
|
||||||
|
.bss start:0x00000030 end:0x000000D8
|
||||||
|
|
||||||
|
REL/m406Dll/player.c:
|
||||||
|
.text start:0x0000D65C end:0x00014724
|
||||||
|
.rodata start:0x000002B8 end:0x0000043C
|
||||||
|
.data start:0x00000960 end:0x00001230
|
||||||
|
.bss start:0x000000D8 end:0x000001FC
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x318
|
ModuleProlog = .text:0x000000A0; // type:function size:0x318
|
||||||
fn_1_3B8 = .text:0x000003B8; // type:function size:0x54
|
fn_1_3B8 = .text:0x000003B8; // type:function size:0x54
|
||||||
fn_1_40C = .text:0x0000040C; // type:function size:0xD00
|
fn_1_40C = .text:0x0000040C; // type:function size:0xD00
|
||||||
fn_1_110C = .text:0x0000110C; // type:function size:0x5C
|
fn_1_110C = .text:0x0000110C; // type:function size:0x5C
|
||||||
|
|
@ -357,11 +357,11 @@ lbl_1_data_838 = .data:0x00000838; // type:object size:0xC
|
||||||
lbl_1_data_844 = .data:0x00000844; // type:object size:0xC
|
lbl_1_data_844 = .data:0x00000844; // type:object size:0xC
|
||||||
lbl_1_data_850 = .data:0x00000850; // type:object size:0x20
|
lbl_1_data_850 = .data:0x00000850; // type:object size:0x20
|
||||||
lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string
|
lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string
|
||||||
lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte
|
lbl_1_data_88F = .data:0x0000088F; // type:object size:0x4 data:byte
|
||||||
lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte
|
lbl_1_data_893 = .data:0x00000893; // type:object size:0x4 data:byte
|
||||||
lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte
|
lbl_1_data_897 = .data:0x00000897; // type:object size:0x4 data:byte
|
||||||
lbl_1_data_89B = .data:0x0000089B; // type:object size:0x1 data:byte
|
lbl_1_data_89B = .data:0x0000089B; // type:object size:0x4 data:byte
|
||||||
lbl_1_data_89F = .data:0x0000089F; // type:object size:0x5 data:byte
|
lbl_1_data_89F = .data:0x0000089F; // type:object size:0x4 data:byte
|
||||||
lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10
|
lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10
|
||||||
lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10
|
lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10
|
||||||
lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC
|
lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,53 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/m407dll/player.c:
|
||||||
|
.text start:0x000000A0 end:0x000014F0
|
||||||
|
.rodata start:0x00000000 end:0x000000B8
|
||||||
|
.data start:0x00000000 end:0x00000198
|
||||||
|
.bss start:0x00000000 end:0x00000020
|
||||||
|
|
||||||
|
REL/m407dll/map.c:
|
||||||
|
.text start:0x000014F0 end:0x00001B1C
|
||||||
|
.rodata start:0x000000B8 end:0x000000D8
|
||||||
|
.data start:0x00000198 end:0x00000228
|
||||||
|
.bss start:0x00000020 end:0x00000030
|
||||||
|
|
||||||
|
REL/m407dll/camera.c:
|
||||||
|
.text start:0x00001B1C end:0x00002354
|
||||||
|
.rodata start:0x000000D8 end:0x00000120
|
||||||
|
.bss start:0x00000030 end:0x00000038
|
||||||
|
|
||||||
|
REL/m407dll/whomp.c:
|
||||||
|
.text start:0x00002354 end:0x00003AC8
|
||||||
|
.rodata start:0x00000120 end:0x00000168
|
||||||
|
.data start:0x00000228 end:0x00000278
|
||||||
|
.bss start:0x00000038 end:0x000037C8
|
||||||
|
|
||||||
|
REL/m407dll/whomp_score.c:
|
||||||
|
.text start:0x00003AC8 end:0x000041CC
|
||||||
|
.rodata start:0x00000168 end:0x00000188
|
||||||
|
.data start:0x00000278 end:0x00000288
|
||||||
|
.bss start:0x000037C8 end:0x000037E0
|
||||||
|
|
||||||
|
REL/m407dll/effect.c:
|
||||||
|
.text start:0x000041CC end:0x00004980
|
||||||
|
.rodata start:0x00000188 end:0x00000190
|
||||||
|
.data start:0x00000288 end:0x000002A8
|
||||||
|
.bss start:0x000037E0 end:0x00003978
|
||||||
|
|
||||||
|
REL/m407dll/main.c:
|
||||||
|
.text start:0x00004980 end:0x00005C5C
|
||||||
|
.rodata start:0x00000190 end:0x000001F0
|
||||||
|
.data start:0x000002A8 end:0x00000360
|
||||||
|
.bss start:0x00003978 end:0x00003988
|
||||||
|
|
||||||
|
REL/m407dll/score.c:
|
||||||
|
.text start:0x00005C5C end:0x00006404
|
||||||
|
.rodata start:0x000001F0 end:0x00000220
|
||||||
|
.data start:0x00000360 end:0x0000036C
|
||||||
|
.bss start:0x00003988 end:0x00003990
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x54
|
ModuleProlog = .text:0x000000A0; // type:function size:0x54
|
||||||
fn_1_F4 = .text:0x000000F4; // type:function size:0xA0
|
fn_1_F4 = .text:0x000000F4; // type:function size:0xA0
|
||||||
fn_1_194 = .text:0x00000194; // type:function size:0x50
|
fn_1_194 = .text:0x00000194; // type:function size:0x50
|
||||||
fn_1_1E4 = .text:0x000001E4; // type:function size:0x54
|
fn_1_1E4 = .text:0x000001E4; // type:function size:0x54
|
||||||
|
|
@ -196,7 +196,7 @@ lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double
|
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte
|
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte
|
||||||
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte
|
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte
|
||||||
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:float
|
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float
|
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float
|
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float
|
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float
|
||||||
|
|
@ -210,24 +210,24 @@ lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
|
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x100
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x100
|
||||||
lbl_1_data_100 = .data:0x00000100; // type:object size:0x20
|
lbl_1_data_100 = .data:0x00000100; // type:object size:0x20
|
||||||
lbl_1_data_120 = .data:0x00000120; // type:object size:0x1C
|
lbl_1_data_120 = .data:0x00000120; // type:object size:0x19 data:string
|
||||||
lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20
|
lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20
|
||||||
lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28
|
lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28
|
||||||
lbl_1_data_184 = .data:0x00000184; // type:object size:0x8
|
lbl_1_data_184 = .data:0x00000184; // type:object size:0x8
|
||||||
lbl_1_data_18C = .data:0x0000018C; // type:object size:0xC
|
lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string
|
||||||
lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte
|
lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte
|
||||||
lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30
|
lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30
|
||||||
lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float
|
lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float
|
||||||
lbl_1_data_208 = .data:0x00000208; // type:object size:0xC
|
lbl_1_data_208 = .data:0x00000208; // type:object size:0xC
|
||||||
lbl_1_data_214 = .data:0x00000214; // type:object size:0x4
|
lbl_1_data_214 = .data:0x00000214; // type:object size:0x4
|
||||||
lbl_1_data_218 = .data:0x00000218; // type:object size:0x10
|
lbl_1_data_218 = .data:0x00000218; // type:object size:0xC
|
||||||
lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte
|
lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte
|
||||||
lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte
|
lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte
|
||||||
lbl_1_data_258 = .data:0x00000258; // type:object size:0x14
|
lbl_1_data_258 = .data:0x00000258; // type:object size:0x14
|
||||||
lbl_1_data_26C = .data:0x0000026C; // type:object size:0xC
|
lbl_1_data_26C = .data:0x0000026C; // type:object size:0xB data:string
|
||||||
lbl_1_data_278 = .data:0x00000278; // type:object size:0x10
|
lbl_1_data_278 = .data:0x00000278; // type:object size:0xC
|
||||||
lbl_1_data_288 = .data:0x00000288; // type:object size:0x14
|
lbl_1_data_288 = .data:0x00000288; // type:object size:0x14
|
||||||
lbl_1_data_29C = .data:0x0000029C; // type:object size:0xC
|
lbl_1_data_29C = .data:0x0000029C; // type:object size:0x8
|
||||||
lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34
|
lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34
|
||||||
lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10
|
lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10
|
||||||
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC
|
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC
|
||||||
|
|
@ -245,7 +245,7 @@ lbl_1_data_358 = .data:0x00000358; // type:object size:0x8
|
||||||
lbl_1_data_360 = .data:0x00000360; // type:object size:0xC
|
lbl_1_data_360 = .data:0x00000360; // type:object size:0xC
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte
|
||||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
|
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte
|
||||||
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte
|
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte
|
lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte
|
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte
|
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte
|
||||||
|
|
@ -259,13 +259,13 @@ lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte
|
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte
|
||||||
lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18
|
lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18
|
||||||
lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10
|
lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10
|
||||||
lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x8 data:4byte
|
lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10
|
lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10
|
||||||
lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x8 data:4byte
|
lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190
|
lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190
|
||||||
lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x8 data:4byte
|
lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte
|
lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte
|
lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x8 data:4byte
|
lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte
|
lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte
|
lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,12 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/messDll/main.c:
|
||||||
|
.text start:0x000000A0 end:0x000014A0
|
||||||
|
.rodata start:0x00000000 end:0x00000078
|
||||||
|
.data start:0x00000000 end:0x00000460
|
||||||
|
.bss start:0x00000000 end:0x00000038
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x21C
|
ModuleProlog = .text:0x000000A0; // type:function size:0x21C
|
||||||
fn_1_2BC = .text:0x000002BC; // type:function size:0x44
|
fn_1_2BC = .text:0x000002BC; // type:function size:0x44
|
||||||
fn_1_300 = .text:0x00000300; // type:function size:0xB88
|
fn_1_300 = .text:0x00000300; // type:function size:0xB88
|
||||||
fn_1_E88 = .text:0x00000E88; // type:function size:0x328
|
fn_1_E88 = .text:0x00000E88; // type:function size:0x328
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,50 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/mstory2Dll/main.c:
|
||||||
|
.text start:0x00000000 end:0x00007DB0
|
||||||
|
.rodata start:0x00000000 end:0x00000118
|
||||||
|
.data start:0x00000000 end:0x000003A0
|
||||||
|
.bss start:0x00000000 end:0x00000078
|
||||||
|
|
||||||
|
REL/mstory2Dll/board_entrance.c:
|
||||||
|
.text start:0x00007DB0 end:0x0000B37C
|
||||||
|
.rodata start:0x00000118 end:0x000001A8
|
||||||
|
.data start:0x000003A0 end:0x00000520
|
||||||
|
.bss start:0x00000078 end:0x00000298
|
||||||
|
|
||||||
|
REL/mstory2Dll/board_clear.c:
|
||||||
|
.text start:0x0000B37C end:0x0000E570
|
||||||
|
.rodata start:0x000001A8 end:0x00000248
|
||||||
|
.data start:0x00000520 end:0x00000698
|
||||||
|
.bss start:0x00000298 end:0x000004E0
|
||||||
|
|
||||||
|
REL/mstory2Dll/board_miss.c:
|
||||||
|
.text start:0x0000E570 end:0x000123C8
|
||||||
|
.rodata start:0x00000248 end:0x00000310
|
||||||
|
.data start:0x00000698 end:0x00000D50
|
||||||
|
.bss start:0x000004E0 end:0x00000790
|
||||||
|
|
||||||
|
REL/mstory2Dll/mg_clear.c:
|
||||||
|
.text start:0x000123C8 end:0x00016060
|
||||||
|
.rodata start:0x00000310 end:0x000003D0
|
||||||
|
.data start:0x00000D50 end:0x00000DB8
|
||||||
|
.bss start:0x00000790 end:0x00000968
|
||||||
|
|
||||||
|
REL/mstory2Dll/mg_miss.c:
|
||||||
|
.text start:0x00016060 end:0x000186D0
|
||||||
|
.rodata start:0x000003D0 end:0x00000440
|
||||||
|
.data start:0x00000DB8 end:0x00000EF8
|
||||||
|
.bss start:0x00000968 end:0x00000B38
|
||||||
|
|
||||||
|
REL/mstory2Dll/ending.c:
|
||||||
|
.text start:0x000186D0 end:0x0001B560
|
||||||
|
.rodata start:0x00000440 end:0x000004B8
|
||||||
|
.data start:0x00000EF8 end:0x00001113
|
||||||
|
.bss start:0x00000B38 end:0x00000D10
|
||||||
|
|
||||||
|
REL/mstory2Dll/save.c:
|
||||||
|
.text start:0x0001B560 end:0x0001B95C
|
||||||
|
.rodata start:0x000004B8 end:0x000004C8
|
||||||
|
.bss start:0x00000D10 end:0x00000D18
|
||||||
|
|
|
||||||
|
|
@ -537,7 +537,8 @@ lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12
|
||||||
lbl_1_data_308 = .data:0x00000308; // type:object size:0x20
|
lbl_1_data_308 = .data:0x00000308; // type:object size:0x20
|
||||||
lbl_1_data_328 = .data:0x00000328; // type:object size:0x60
|
lbl_1_data_328 = .data:0x00000328; // type:object size:0x60
|
||||||
lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string
|
lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string
|
||||||
lbl_1_data_399 = .data:0x00000399; // type:object size:0x33
|
lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string
|
||||||
|
lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C
|
||||||
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10
|
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10
|
||||||
lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte
|
lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte
|
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte
|
||||||
|
|
@ -555,7 +556,7 @@ lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string
|
||||||
lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string
|
lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string
|
||||||
lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string
|
lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string
|
||||||
lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string
|
lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string
|
||||||
lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14
|
lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string
|
||||||
lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string
|
lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string
|
||||||
lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string
|
lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string
|
||||||
lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string
|
lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string
|
||||||
|
|
@ -572,7 +573,8 @@ lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string
|
||||||
lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string
|
lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string
|
||||||
lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string
|
lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string
|
||||||
lbl_1_data_668 = .data:0x00000668; // type:object size:0x30
|
lbl_1_data_668 = .data:0x00000668; // type:object size:0x30
|
||||||
lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C
|
lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C
|
||||||
|
lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20
|
||||||
lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string
|
lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string
|
||||||
lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string
|
lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string
|
||||||
lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string
|
lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string
|
||||||
|
|
@ -588,7 +590,7 @@ lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string
|
||||||
lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string
|
lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string
|
||||||
lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string
|
lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string
|
||||||
lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C
|
lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C
|
||||||
lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34
|
lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30
|
||||||
lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0
|
lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0
|
||||||
lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10
|
lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10
|
||||||
lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte
|
lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte
|
||||||
|
|
@ -610,7 +612,7 @@ lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string
|
||||||
lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string
|
lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string
|
||||||
lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string
|
lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string
|
||||||
lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string
|
lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string
|
||||||
lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB
|
lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string
|
||||||
lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string
|
lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string
|
||||||
lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string
|
lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string
|
||||||
lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string
|
lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string
|
||||||
|
|
@ -625,7 +627,7 @@ lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string
|
||||||
lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string
|
lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string
|
||||||
lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string
|
lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string
|
||||||
lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string
|
lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string
|
||||||
lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20
|
lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string
|
||||||
lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10
|
lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10
|
||||||
lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte
|
lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte
|
lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte
|
||||||
|
|
@ -654,8 +656,10 @@ lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string
|
||||||
lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string
|
lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string
|
||||||
lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20
|
lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20
|
||||||
lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string
|
lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte
|
||||||
|
lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float
|
||||||
|
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xC data:float
|
||||||
lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte
|
lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte
|
||||||
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte
|
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte
|
||||||
lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte
|
lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte
|
||||||
|
|
@ -680,7 +684,7 @@ lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte
|
lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte
|
lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte
|
lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float
|
lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x104 data:float
|
||||||
lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte
|
lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte
|
lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte
|
lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte
|
||||||
|
|
@ -688,7 +692,7 @@ lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte
|
lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte
|
lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte
|
lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte
|
lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x104 data:4byte
|
||||||
lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte
|
lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte
|
lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte
|
||||||
lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte
|
lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,27 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/mstory3Dll/main.c:
|
||||||
|
.text start:0x00000000 end:0x00006A78
|
||||||
|
.rodata start:0x00000000 end:0x00000110
|
||||||
|
.data start:0x00000000 end:0x00000130
|
||||||
|
.bss start:0x00000000 end:0x00000058
|
||||||
|
|
||||||
|
REL/mstory3Dll/result_seq.c:
|
||||||
|
.text start:0x00006A78 end:0x000157F0
|
||||||
|
.rodata start:0x00000110 end:0x00000418
|
||||||
|
.data start:0x00000130 end:0x000007E0
|
||||||
|
.bss start:0x00000058 end:0x000018D0
|
||||||
|
|
||||||
|
REL/mstory3Dll/result.c:
|
||||||
|
.text start:0x000157F0 end:0x0001DED8
|
||||||
|
.rodata start:0x00000418 end:0x000005D0
|
||||||
|
.data start:0x000007E0 end:0x00000A90
|
||||||
|
.bss start:0x000018D0 end:0x00001CE8
|
||||||
|
|
||||||
|
REL/mstory3Dll/win_effect.c:
|
||||||
|
.text start:0x0001DED8 end:0x0001F100
|
||||||
|
.rodata start:0x000005D0 end:0x00000644
|
||||||
|
.data start:0x00000A90 end:0x00000AAB
|
||||||
|
.bss start:0x00001CE8 end:0x00001D50
|
||||||
|
|
|
||||||
|
|
@ -345,7 +345,7 @@ lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float
|
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double
|
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float
|
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte
|
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte
|
||||||
lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double
|
lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte
|
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte
|
||||||
lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float
|
lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float
|
||||||
|
|
@ -442,14 +442,14 @@ lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float
|
lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x70
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x70
|
||||||
lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string
|
lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string
|
||||||
lbl_1_data_95 = .data:0x00000095; // type:object size:0xF
|
lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string
|
||||||
lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8
|
lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8
|
||||||
lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string
|
lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string
|
||||||
lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string
|
lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string
|
||||||
lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string
|
lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string
|
||||||
lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string
|
lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string
|
||||||
lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string
|
lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string
|
||||||
lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15
|
lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string
|
||||||
lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float
|
lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float
|
||||||
lbl_1_data_160 = .data:0x00000160; // type:object size:0x50
|
lbl_1_data_160 = .data:0x00000160; // type:object size:0x50
|
||||||
lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50
|
lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50
|
||||||
|
|
@ -465,11 +465,11 @@ lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string
|
||||||
lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string
|
lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string
|
||||||
lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string
|
lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string
|
||||||
lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string
|
lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string
|
||||||
lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E
|
lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string
|
||||||
lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte
|
lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte
|
||||||
lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC
|
lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC
|
||||||
lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string
|
lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string
|
||||||
lbl_1_data_387 = .data:0x00000387; // type:object size:0x11
|
lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string
|
||||||
jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local
|
jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local
|
||||||
lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string
|
lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string
|
||||||
lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string
|
lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string
|
||||||
|
|
@ -485,7 +485,7 @@ lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string
|
||||||
lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string
|
lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string
|
||||||
lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12
|
lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12
|
||||||
lbl_1_data_504 = .data:0x00000504; // type:object size:0x288
|
lbl_1_data_504 = .data:0x00000504; // type:object size:0x288
|
||||||
lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54
|
lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5
|
||||||
lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string
|
lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string
|
||||||
lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string
|
lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string
|
||||||
lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string
|
lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string
|
||||||
|
|
@ -508,7 +508,8 @@ lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B
|
||||||
lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string
|
lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string
|
||||||
lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string
|
lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float
|
||||||
|
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float
|
||||||
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte
|
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte
|
||||||
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte
|
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte
|
||||||
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,9 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/mstory4Dll/main.c:
|
||||||
|
.text start:0x00000000 end:0x00001A2C
|
||||||
|
.rodata start:0x00000000 end:0x00000048
|
||||||
|
.data start:0x00000000 end:0x000006F6
|
||||||
|
.bss start:0x00000000 end:0x00000018
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,39 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/mstoryDll/main.c:
|
||||||
|
.text start:0x00000000 end:0x00006AFC
|
||||||
|
.rodata start:0x00000000 end:0x00000100
|
||||||
|
.data start:0x00000000 end:0x00000190
|
||||||
|
.bss start:0x00000000 end:0x00000058
|
||||||
|
|
||||||
|
REL/mstoryDll/board_clear.c:
|
||||||
|
.text start:0x00006AFC end:0x0000A830
|
||||||
|
.rodata start:0x00000100 end:0x00000268
|
||||||
|
.data start:0x00000190 end:0x00000388
|
||||||
|
.bss start:0x00000058 end:0x000002C8
|
||||||
|
|
||||||
|
REL/mstoryDll/board_miss.c:
|
||||||
|
.text start:0x0000A830 end:0x0000E710
|
||||||
|
.rodata start:0x00000268 end:0x000003B8
|
||||||
|
.data start:0x00000388 end:0x00000570
|
||||||
|
.bss start:0x000002C8 end:0x00000558
|
||||||
|
|
||||||
|
REL/mstoryDll/mg_clear.c:
|
||||||
|
.text start:0x0000E710 end:0x00011624
|
||||||
|
.rodata start:0x000003B8 end:0x000004E0
|
||||||
|
.data start:0x00000570 end:0x00000AF8
|
||||||
|
.bss start:0x00000558 end:0x00000710
|
||||||
|
|
||||||
|
REL/mstoryDll/mg_miss.c:
|
||||||
|
.text start:0x00011624 end:0x00013B48
|
||||||
|
.rodata start:0x000004E0 end:0x000005A8
|
||||||
|
.data start:0x00000AF8 end:0x00000C50
|
||||||
|
.bss start:0x00000710 end:0x000008B8
|
||||||
|
|
||||||
|
REL/mstoryDll/save.c:
|
||||||
|
.text start:0x00013B48 end:0x000141A0
|
||||||
|
.rodata start:0x000005A8 end:0x000005B8
|
||||||
|
.data start:0x00000C50 end:0x00000C98
|
||||||
|
.bss start:0x000008B8 end:0x000008C0
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float
|
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float
|
||||||
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte
|
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte
|
||||||
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte
|
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte
|
||||||
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float
|
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float
|
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float
|
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float
|
||||||
|
|
@ -390,7 +390,7 @@ lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string
|
||||||
lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string
|
lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string
|
||||||
lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string
|
lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string
|
||||||
lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string
|
lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string
|
||||||
lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11
|
lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string
|
||||||
lbl_1_data_190 = .data:0x00000190; // type:object size:0x50
|
lbl_1_data_190 = .data:0x00000190; // type:object size:0x50
|
||||||
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C
|
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C
|
||||||
lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string
|
lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string
|
||||||
|
|
@ -406,8 +406,8 @@ lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string
|
||||||
lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string
|
lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string
|
||||||
lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string
|
lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string
|
||||||
lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string
|
lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string
|
||||||
lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C
|
lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string
|
||||||
lbl_1_data_354 = .data:0x00000354; // type:object size:0x34
|
lbl_1_data_354 = .data:0x00000354; // type:object size:0x30
|
||||||
lbl_1_data_388 = .data:0x00000388; // type:object size:0x50
|
lbl_1_data_388 = .data:0x00000388; // type:object size:0x50
|
||||||
lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C
|
lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C
|
||||||
lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string
|
lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string
|
||||||
|
|
@ -424,7 +424,7 @@ lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string
|
||||||
lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string
|
lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string
|
||||||
lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string
|
lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string
|
||||||
lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string
|
lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string
|
||||||
lbl_1_data_537 = .data:0x00000537; // type:object size:0x9
|
lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string
|
||||||
lbl_1_data_540 = .data:0x00000540; // type:object size:0x30
|
lbl_1_data_540 = .data:0x00000540; // type:object size:0x30
|
||||||
lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0
|
lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0
|
||||||
lbl_1_data_930 = .data:0x00000930; // type:object size:0x50
|
lbl_1_data_930 = .data:0x00000930; // type:object size:0x50
|
||||||
|
|
@ -445,7 +445,7 @@ lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string
|
||||||
lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string
|
lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string
|
||||||
lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string
|
lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string
|
||||||
lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string
|
lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string
|
||||||
lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB
|
lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string
|
||||||
lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C
|
lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C
|
||||||
lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string
|
lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string
|
||||||
lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string
|
lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string
|
||||||
|
|
@ -459,10 +459,11 @@ lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string
|
||||||
lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string
|
lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string
|
||||||
lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string
|
lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string
|
||||||
lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string
|
lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string
|
||||||
lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21
|
lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string
|
||||||
lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string
|
lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte
|
||||||
|
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte
|
||||||
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte
|
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte
|
||||||
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte
|
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte
|
||||||
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,23 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/resultDll/main.c:
|
||||||
|
.text start:0x000000A0 end:0x00006490
|
||||||
|
.rodata start:0x00000000 end:0x00000160
|
||||||
|
.data start:0x00000000 end:0x000004E8
|
||||||
|
.bss start:0x00000000 end:0x00000190
|
||||||
|
|
||||||
|
REL/resultDll/battle.c:
|
||||||
|
.text start:0x00006490 end:0x00008FF8
|
||||||
|
.rodata start:0x00000160 end:0x00000220
|
||||||
|
.data start:0x000004E8 end:0x000008B8
|
||||||
|
.bss start:0x00000190 end:0x00001ADC
|
||||||
|
|
||||||
|
REL/resultDll/datalist.c:
|
||||||
|
.text start:0x00008FF8 end:0x0000942C
|
||||||
|
.rodata start:0x00000220 end:0x00000230
|
||||||
|
.data start:0x000008B8 end:0x00000918
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x438
|
ModuleProlog = .text:0x000000A0; // type:function size:0x438
|
||||||
fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0
|
fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0
|
||||||
fn_1_888 = .text:0x00000888; // type:function size:0x2F0
|
fn_1_888 = .text:0x00000888; // type:function size:0x2F0
|
||||||
fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4
|
fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4
|
||||||
|
|
@ -145,11 +145,12 @@ lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10
|
||||||
lbl_1_data_408 = .data:0x00000408; // type:object size:0x30
|
lbl_1_data_408 = .data:0x00000408; // type:object size:0x30
|
||||||
lbl_1_data_438 = .data:0x00000438; // type:object size:0x10
|
lbl_1_data_438 = .data:0x00000438; // type:object size:0x10
|
||||||
lbl_1_data_448 = .data:0x00000448; // type:object size:0x8
|
lbl_1_data_448 = .data:0x00000448; // type:object size:0x8
|
||||||
lbl_1_data_450 = .data:0x00000450; // type:object size:0x38
|
lbl_1_data_450 = .data:0x00000450; // type:object size:0x18
|
||||||
|
lbl_1_data_468 = .data:0x00000468; // type:object size:0x20
|
||||||
lbl_1_data_488 = .data:0x00000488; // type:object size:0x30
|
lbl_1_data_488 = .data:0x00000488; // type:object size:0x30
|
||||||
lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string
|
lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string
|
||||||
lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string
|
lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string
|
||||||
lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xE
|
lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB data:string
|
||||||
lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270
|
lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270
|
||||||
lbl_1_data_758 = .data:0x00000758; // type:object size:0x28
|
lbl_1_data_758 = .data:0x00000758; // type:object size:0x28
|
||||||
lbl_1_data_780 = .data:0x00000780; // type:object size:0x70
|
lbl_1_data_780 = .data:0x00000780; // type:object size:0x70
|
||||||
|
|
@ -160,7 +161,7 @@ lbl_1_data_860 = .data:0x00000860; // type:object size:0x20
|
||||||
lbl_1_data_880 = .data:0x00000880; // type:object size:0x20
|
lbl_1_data_880 = .data:0x00000880; // type:object size:0x20
|
||||||
lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte
|
lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte
|
||||||
lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string
|
lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string
|
||||||
lbl_1_data_8AE = .data:0x000008AE; // type:object size:0xA
|
lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 data:string
|
||||||
lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60
|
lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||||
|
|
@ -187,7 +188,7 @@ lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte
|
lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte
|
lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte
|
lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_184 = .bss:0x00000184; // type:object size:0xC data:4byte
|
lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x8 data:4byte
|
||||||
lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte
|
lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680
|
lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680
|
||||||
lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14
|
lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,9 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/safDll/main.c:
|
||||||
|
.text start:0x00000000 end:0x000003AC
|
||||||
|
.rodata start:0x00000000 end:0x00000024
|
||||||
|
.data start:0x00000000 end:0x00000039
|
||||||
|
.bss start:0x00000000 end:0x00000300
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Sections:
|
||||||
REL/executor.c:
|
REL/executor.c:
|
||||||
.text start:0x00000000 end:0x000000A0
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/selmenuDll/selmenuDll.c:
|
REL/selmenuDll/main.c:
|
||||||
.text start:0x000000A0 end:0x00005198
|
.text start:0x000000A0 end:0x00005198
|
||||||
.rodata start:0x00000000 end:0x00000084
|
.rodata start:0x00000000 end:0x00000084
|
||||||
.data start:0x00000000 end:0x00000B3F
|
.data start:0x00000000 end:0x00000B3F
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Sections:
|
||||||
REL/executor.c:
|
REL/executor.c:
|
||||||
.text start:0x00000000 end:0x000000A0
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/staffDll/staffDll.c:
|
REL/staffDll/main.c:
|
||||||
.text start:0x000000A0 end:0x00001290
|
.text start:0x000000A0 end:0x00001290
|
||||||
.rodata start:0x00000000 end:0x00000094
|
.rodata start:0x00000000 end:0x00000094
|
||||||
.data start:0x00000000 end:0x00001178
|
.data start:0x00000000 end:0x00001178
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Sections:
|
||||||
REL/executor.c:
|
REL/executor.c:
|
||||||
.text start:0x00000000 end:0x000000A0
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
REL/subchrselDll/subchrselDll.c:
|
REL/subchrselDll/main.c:
|
||||||
.text start:0x000000A0 end:0x000007B8
|
.text start:0x000000A0 end:0x000007B8
|
||||||
.rodata start:0x00000000 end:0x00000018
|
.rodata start:0x00000000 end:0x00000018
|
||||||
.data start:0x00000000 end:0x000000E1
|
.data start:0x00000000 end:0x000000E1
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,14 @@ REL/board_executor.c:
|
||||||
.text start:0x00000000 end:0x000000E0
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
REL/w03Dll/main.c:
|
REL/w03Dll/main.c:
|
||||||
.text start:0x000000E0 end:0x000010E4
|
.text start:0x000000E0 end:0x000012C8
|
||||||
.rodata start:0x00000000 end:0x00000030
|
.rodata start:0x00000000 end:0x00000038
|
||||||
.data start:0x00000000 end:0x00000280
|
.data start:0x00000000 end:0x00000280
|
||||||
.bss start:0x00000000 end:0x00000028
|
.bss start:0x00000000 end:0x00000028
|
||||||
|
|
||||||
REL/w03Dll/statue.c:
|
REL/w03Dll/statue.c:
|
||||||
.text start:0x000010E4 end:0x00003058
|
.text start:0x000012C8 end:0x00003058
|
||||||
.rodata start:0x00000030 end:0x000000D8
|
.rodata start:0x00000038 end:0x000000D8
|
||||||
.data start:0x00000280 end:0x00000310
|
.data start:0x00000280 end:0x00000310
|
||||||
.bss start:0x00000028 end:0x00000070
|
.bss start:0x00000028 end:0x00000070
|
||||||
|
|
||||||
|
|
@ -31,12 +31,13 @@ REL/w03Dll/river.c:
|
||||||
.text start:0x000063F4 end:0x0000785C
|
.text start:0x000063F4 end:0x0000785C
|
||||||
.rodata start:0x00000218 end:0x000002A8
|
.rodata start:0x00000218 end:0x000002A8
|
||||||
.data start:0x00000368 end:0x00000410
|
.data start:0x00000368 end:0x00000410
|
||||||
.bss start:0x00000120 end:0x00000140
|
.bss start:0x00000120 end:0x00000138
|
||||||
|
|
||||||
REL/w03Dll/smoke.c:
|
REL/w03Dll/smoke.c:
|
||||||
.text start:0x0000785C end:0x00007ABC
|
.text start:0x0000785C end:0x00007ABC
|
||||||
.rodata start:0x000002A8 end:0x000002B0
|
.rodata start:0x000002A8 end:0x000002B0
|
||||||
.data start:0x00000410 end:0x00000450
|
.data start:0x00000410 end:0x00000450
|
||||||
|
.bss start:0x00000138 end:0x00000140
|
||||||
|
|
||||||
REL/w03Dll/mg_coin.c:
|
REL/w03Dll/mg_coin.c:
|
||||||
.text start:0x00007ABC end:0x00009A7C
|
.text start:0x00007ABC end:0x00009A7C
|
||||||
|
|
|
||||||
|
|
@ -126,41 +126,41 @@ fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84
|
||||||
fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418
|
fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
|
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
|
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
|
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float
|
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float
|
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float
|
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float
|
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float
|
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double
|
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double
|
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float
|
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float
|
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float
|
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float
|
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float
|
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float
|
lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float
|
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float
|
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float
|
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte
|
lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC scope:local data:4byte
|
||||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 data:4byte
|
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 scope:local data:4byte
|
||||||
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float
|
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float
|
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
|
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float
|
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float
|
lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float
|
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float
|
lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 data:2byte
|
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 scope:local data:2byte
|
||||||
lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 data:byte
|
lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 scope:local data:byte
|
||||||
lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 data:byte
|
lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 scope:local data:byte
|
||||||
lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float
|
lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float
|
lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float
|
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float
|
||||||
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float
|
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float
|
lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float
|
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float
|
||||||
|
|
@ -222,36 +222,36 @@ lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float
|
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float
|
lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float
|
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float
|
||||||
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float
|
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
|
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float
|
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double
|
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double
|
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double
|
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double
|
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float
|
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float
|
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double
|
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float
|
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float
|
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float
|
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float
|
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float
|
lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float
|
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float
|
lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float
|
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float
|
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float
|
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float
|
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float
|
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float
|
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float
|
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float
|
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double
|
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double
|
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float
|
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float
|
lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float
|
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float
|
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float
|
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float
|
||||||
|
|
@ -290,43 +290,43 @@ lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double
|
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float
|
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float
|
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float
|
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float
|
lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float
|
lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float
|
lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float
|
lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double
|
lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double
|
lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double
|
lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double
|
lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double
|
lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double
|
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float
|
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float
|
lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float
|
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float
|
lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float
|
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float
|
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float
|
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float
|
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float
|
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float
|
lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float
|
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float
|
lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float
|
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float
|
lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float
|
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float
|
lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float
|
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float
|
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float
|
lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float
|
lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float
|
lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float
|
lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float
|
lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float
|
lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float
|
lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double
|
lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0
|
||||||
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte
|
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte
|
lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte
|
||||||
|
|
@ -366,18 +366,18 @@ lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte
|
lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte
|
lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_390 = .data:0x00000390; // type:object size:0x10
|
lbl_1_data_390 = .data:0x00000390; // type:object size:0x10
|
||||||
lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string
|
lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB scope:local data:string
|
||||||
lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string
|
lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 scope:local data:string
|
||||||
lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7
|
lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 scope:local
|
||||||
lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48
|
lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48
|
||||||
lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string
|
lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 scope:local data:string
|
||||||
lbl_1_data_403 = .data:0x00000403; // type:object size:0xD
|
lbl_1_data_403 = .data:0x00000403; // type:object size:0xD scope:local
|
||||||
lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string
|
lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 scope:local data:string
|
||||||
lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string
|
lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 scope:local data:string
|
||||||
lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 data:string
|
lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 scope:local data:string
|
||||||
lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 data:string
|
lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 scope:local data:string
|
||||||
lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 data:string
|
lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 scope:local data:string
|
||||||
lbl_1_data_438 = .data:0x00000438; // type:object size:0x18
|
lbl_1_data_438 = .data:0x00000438; // type:object size:0x18 scope:local
|
||||||
lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte
|
lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte
|
lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte
|
lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte
|
||||||
|
|
@ -396,10 +396,10 @@ lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte
|
lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte
|
lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE
|
lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE
|
||||||
lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 data:string
|
lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 scope:local data:string
|
||||||
lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 data:string
|
lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 scope:local data:string
|
||||||
lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9
|
lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9 scope:local
|
||||||
lbl_1_data_508 = .data:0x00000508; // type:object size:0xC
|
lbl_1_data_508 = .data:0x00000508; // type:object size:0xC scope:local
|
||||||
lbl_1_data_514 = .data:0x00000514; // type:object size:0x38
|
lbl_1_data_514 = .data:0x00000514; // type:object size:0x38
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,42 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/board_executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
|
REL/w04Dll/main.c:
|
||||||
|
.text start:0x000000E0 end:0x000012FC
|
||||||
|
.rodata start:0x00000000 end:0x00000040
|
||||||
|
.data start:0x00000000 end:0x00000298
|
||||||
|
.bss start:0x00000000 end:0x00000038
|
||||||
|
|
||||||
|
REL/w04Dll/bridge.c:
|
||||||
|
.text start:0x000012FC end:0x00002044
|
||||||
|
.rodata start:0x00000040 end:0x00000098
|
||||||
|
.data start:0x00000298 end:0x000002D0
|
||||||
|
.bss start:0x00000038 end:0x00000048
|
||||||
|
|
||||||
|
REL/w04Dll/boo_event.c:
|
||||||
|
.text start:0x00002044 end:0x00006024
|
||||||
|
.rodata start:0x00000098 end:0x00000180
|
||||||
|
.data start:0x000002D0 end:0x000003A8
|
||||||
|
.bss start:0x00000048 end:0x00000100
|
||||||
|
|
||||||
|
REL/w04Dll/big_boo.c:
|
||||||
|
.text start:0x00006024 end:0x0000A0F8
|
||||||
|
.rodata start:0x00000180 end:0x000002C0
|
||||||
|
.data start:0x000003A8 end:0x000004F0
|
||||||
|
.bss start:0x00000100 end:0x00000288
|
||||||
|
|
||||||
|
REL/w04Dll/mg_item.c:
|
||||||
|
.text start:0x0000A0F8 end:0x0000C7A0
|
||||||
|
.rodata start:0x000002C0 end:0x000003A0
|
||||||
|
.data start:0x000004F0 end:0x00000588
|
||||||
|
.bss start:0x00000288 end:0x000002B0
|
||||||
|
|
||||||
|
REL/w04Dll/mg_coin.c:
|
||||||
|
.text start:0x0000C7A0 end:0x0000EA0C
|
||||||
|
.rodata start:0x000003A0 end:0x00000428
|
||||||
|
.data start:0x00000588 end:0x0000063F
|
||||||
|
.bss start:0x000002B0 end:0x00000328
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
fn_1_0 = .text:0x00000000; // type:function size:0x30
|
InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
|
||||||
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
fn_1_E0 = .text:0x000000E0; // type:function size:0x514
|
BoardCreate = .text:0x000000E0; // type:function size:0x514
|
||||||
fn_1_5F4 = .text:0x000005F4; // type:function size:0x15C
|
BoardDestroy = .text:0x000005F4; // type:function size:0x15C
|
||||||
fn_1_750 = .text:0x00000750; // type:function size:0x44
|
fn_1_750 = .text:0x00000750; // type:function size:0x44
|
||||||
fn_1_794 = .text:0x00000794; // type:function size:0x4
|
fn_1_794 = .text:0x00000794; // type:function size:0x4
|
||||||
fn_1_798 = .text:0x00000798; // type:function size:0x64
|
fn_1_798 = .text:0x00000798; // type:function size:0x64
|
||||||
|
|
@ -326,7 +326,7 @@ lbl_1_data_288 = .data:0x00000288; // type:object size:0x8
|
||||||
lbl_1_data_290 = .data:0x00000290; // type:object size:0x8
|
lbl_1_data_290 = .data:0x00000290; // type:object size:0x8
|
||||||
lbl_1_data_298 = .data:0x00000298; // type:object size:0x8
|
lbl_1_data_298 = .data:0x00000298; // type:object size:0x8
|
||||||
lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC
|
lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC
|
||||||
lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24
|
lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x20
|
||||||
lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20
|
lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20
|
||||||
lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte
|
lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20
|
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20
|
||||||
|
|
@ -340,12 +340,12 @@ lbl_1_data_358 = .data:0x00000358; // type:object size:0x10
|
||||||
lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string
|
lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string
|
||||||
lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string
|
lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string
|
||||||
lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string
|
lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string
|
||||||
lbl_1_data_393 = .data:0x00000393; // type:object size:0x15
|
lbl_1_data_393 = .data:0x00000393; // type:object size:0x10
|
||||||
lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string
|
lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string
|
||||||
lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string
|
lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string
|
||||||
lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string
|
lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string
|
||||||
lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string
|
lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string
|
||||||
lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8
|
lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x5 data:string
|
||||||
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte
|
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte
|
||||||
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14
|
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14
|
||||||
lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20
|
lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20
|
||||||
|
|
@ -356,8 +356,8 @@ lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string
|
||||||
lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string
|
lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string
|
||||||
lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B
|
lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B
|
||||||
lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string
|
lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string
|
||||||
lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11
|
lbl_1_data_48B = .data:0x0000048B; // type:object size:0xF data:string
|
||||||
lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54
|
lbl_1_data_49C = .data:0x0000049C; // type:object size:0x50
|
||||||
lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string
|
lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string
|
||||||
lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string
|
lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string
|
||||||
lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string
|
lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string
|
||||||
|
|
@ -388,7 +388,7 @@ lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte
|
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte
|
||||||
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
|
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte
|
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x20 data:2byte
|
||||||
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte
|
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC
|
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC
|
||||||
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte
|
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte
|
||||||
|
|
@ -410,7 +410,7 @@ lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10
|
||||||
lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10
|
lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10
|
||||||
lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10
|
lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10
|
||||||
lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte
|
lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte
|
||||||
lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 data:2byte
|
lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte
|
lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte
|
lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC
|
lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC
|
||||||
|
|
@ -427,7 +427,7 @@ lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte
|
lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte
|
lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte
|
lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 data:2byte
|
lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte
|
lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte
|
lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte
|
||||||
lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float
|
lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,42 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/board_executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
|
REL/w05Dll/main.c:
|
||||||
|
.text start:0x000000E0 end:0x000013D4
|
||||||
|
.rodata start:0x00000000 end:0x00000048
|
||||||
|
.data start:0x00000000 end:0x00000150
|
||||||
|
.bss start:0x00000000 end:0x00000028
|
||||||
|
|
||||||
|
REL/w05Dll/hotel.c:
|
||||||
|
.text start:0x000013D4 end:0x00002B40
|
||||||
|
.rodata start:0x00000048 end:0x00000090
|
||||||
|
.data start:0x00000150 end:0x000001A8
|
||||||
|
.bss start:0x00000028 end:0x00000030
|
||||||
|
|
||||||
|
REL/w05Dll/monkey.c:
|
||||||
|
.text start:0x00002B40 end:0x00003F74
|
||||||
|
.rodata start:0x00000090 end:0x000000F8
|
||||||
|
.data start:0x000001A8 end:0x00000200
|
||||||
|
.bss start:0x00000030 end:0x00000058
|
||||||
|
|
||||||
|
REL/w05Dll/dolphin.c:
|
||||||
|
.text start:0x00003F74 end:0x00006B28
|
||||||
|
.rodata start:0x000000F8 end:0x000001A8
|
||||||
|
.data start:0x00000200 end:0x00000310
|
||||||
|
.bss start:0x00000058 end:0x00000078
|
||||||
|
|
||||||
|
REL/w05Dll/mg_item.c:
|
||||||
|
.text start:0x00006B28 end:0x00009680
|
||||||
|
.rodata start:0x000001A8 end:0x00000268
|
||||||
|
.data start:0x00000310 end:0x00000450
|
||||||
|
.bss start:0x00000078 end:0x000000B8
|
||||||
|
|
||||||
|
REL/w05Dll/mg_coin.c:
|
||||||
|
.text start:0x00009680 end:0x0000B644
|
||||||
|
.rodata start:0x00000268 end:0x00000300
|
||||||
|
.data start:0x00000450 end:0x000004C7
|
||||||
|
.bss start:0x000000B8 end:0x00000108
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
fn_1_0 = .text:0x00000000; // type:function size:0x30
|
InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
|
||||||
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
fn_1_E0 = .text:0x000000E0; // type:function size:0x4D8
|
BoardCreate = .text:0x000000E0; // type:function size:0x4D8
|
||||||
fn_1_5B8 = .text:0x000005B8; // type:function size:0x18C
|
BoardDestroy = .text:0x000005B8; // type:function size:0x18C
|
||||||
fn_1_744 = .text:0x00000744; // type:function size:0x44
|
fn_1_744 = .text:0x00000744; // type:function size:0x44
|
||||||
fn_1_788 = .text:0x00000788; // type:function size:0x4
|
fn_1_788 = .text:0x00000788; // type:function size:0x4
|
||||||
fn_1_78C = .text:0x0000078C; // type:function size:0xA0
|
fn_1_78C = .text:0x0000078C; // type:function size:0xA0
|
||||||
|
|
@ -256,10 +256,10 @@ lbl_1_data_144 = .data:0x00000144; // type:object size:0x8
|
||||||
lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4
|
lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4
|
||||||
lbl_1_data_150 = .data:0x00000150; // type:object size:0x14
|
lbl_1_data_150 = .data:0x00000150; // type:object size:0x14
|
||||||
lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte
|
lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_166 = .data:0x00000166; // type:object size:0xA
|
lbl_1_data_166 = .data:0x00000166; // type:object size:0x7 data:string
|
||||||
lbl_1_data_170 = .data:0x00000170; // type:object size:0x10
|
lbl_1_data_170 = .data:0x00000170; // type:object size:0x10
|
||||||
lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte
|
lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte
|
||||||
lbl_1_data_184 = .data:0x00000184; // type:object size:0x4
|
lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string
|
||||||
lbl_1_data_188 = .data:0x00000188; // type:object size:0x10
|
lbl_1_data_188 = .data:0x00000188; // type:object size:0x10
|
||||||
lbl_1_data_198 = .data:0x00000198; // type:object size:0x8
|
lbl_1_data_198 = .data:0x00000198; // type:object size:0x8
|
||||||
lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string
|
lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string
|
||||||
|
|
@ -271,19 +271,19 @@ lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xC
|
||||||
lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string
|
lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string
|
||||||
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string
|
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string
|
||||||
lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string
|
lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string
|
||||||
lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE
|
lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xB data:string
|
||||||
lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string
|
lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string
|
||||||
lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string
|
lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string
|
||||||
lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string
|
lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string
|
||||||
lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string
|
lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string
|
||||||
lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string
|
lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string
|
||||||
lbl_1_data_223 = .data:0x00000223; // type:object size:0x9
|
lbl_1_data_223 = .data:0x00000223; // type:object size:0x7 data:string
|
||||||
lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18
|
lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18
|
||||||
lbl_1_data_244 = .data:0x00000244; // type:object size:0x18
|
lbl_1_data_244 = .data:0x00000244; // type:object size:0x18
|
||||||
lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48
|
lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48
|
||||||
lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48
|
lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48
|
||||||
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8
|
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8
|
||||||
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x1C
|
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x18
|
||||||
lbl_1_data_310 = .data:0x00000310; // type:object size:0x8
|
lbl_1_data_310 = .data:0x00000310; // type:object size:0x8
|
||||||
lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string
|
lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string
|
||||||
lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string
|
lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string
|
||||||
|
|
@ -291,8 +291,9 @@ lbl_1_data_326 = .data:0x00000326; // type:object size:0xA
|
||||||
lbl_1_data_330 = .data:0x00000330; // type:object size:0xC
|
lbl_1_data_330 = .data:0x00000330; // type:object size:0xC
|
||||||
lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string
|
lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string
|
||||||
lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string
|
lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string
|
||||||
lbl_1_data_350 = .data:0x00000350; // type:object size:0xF0
|
lbl_1_data_350 = .data:0x00000350; // type:object size:0x38
|
||||||
lbl_1_data_440 = .data:0x00000440; // type:object size:0x10
|
lbl_1_data_388 = .data:0x00000388; // type:object size:0xB8
|
||||||
|
lbl_1_data_440 = .data:0x00000440; // type:object size:0xC
|
||||||
lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string
|
lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string
|
||||||
lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string
|
lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string
|
||||||
lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string
|
lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string
|
||||||
|
|
@ -312,20 +313,20 @@ lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte
|
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte
|
||||||
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
|
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x14 data:2byte
|
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xE data:2byte
|
||||||
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:2byte
|
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte
|
lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte
|
||||||
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float
|
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float
|
||||||
lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte
|
lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte
|
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte
|
lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte
|
lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0xA data:2byte
|
lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0x4 data:2byte
|
||||||
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC
|
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC
|
||||||
lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte
|
lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte
|
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6
|
lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6
|
||||||
lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x6 data:2byte
|
lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x4 data:2byte
|
||||||
lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte
|
lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC
|
lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC
|
||||||
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte
|
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,42 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/board_executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
|
REL/w06Dll/main.c:
|
||||||
|
.text start:0x000000E0 end:0x00000D70
|
||||||
|
.rodata start:0x00000000 end:0x00000040
|
||||||
|
.data start:0x00000000 end:0x000001A8
|
||||||
|
.bss start:0x00000000 end:0x00000018
|
||||||
|
|
||||||
|
REL/w06Dll/mg_item.c:
|
||||||
|
.text start:0x00000D70 end:0x00004878
|
||||||
|
.rodata start:0x00000040 end:0x000000F0
|
||||||
|
.data start:0x000001A8 end:0x000001D8
|
||||||
|
.bss start:0x00000018 end:0x00000048
|
||||||
|
|
||||||
|
REL/w06Dll/mg_coin.c:
|
||||||
|
.text start:0x00004878 end:0x00006EF0
|
||||||
|
.rodata start:0x000000F0 end:0x000001B0
|
||||||
|
.data start:0x000001D8 end:0x00000208
|
||||||
|
.bss start:0x00000048 end:0x00000090
|
||||||
|
|
||||||
|
REL/w06Dll/fire.c:
|
||||||
|
.text start:0x00006EF0 end:0x00007BB0
|
||||||
|
.rodata start:0x000001B0 end:0x000001E8
|
||||||
|
.data start:0x00000208 end:0x00000418
|
||||||
|
.bss start:0x00000090 end:0x000000C8
|
||||||
|
|
||||||
|
REL/w06Dll/bridge.c:
|
||||||
|
.text start:0x00007BB0 end:0x00008F20
|
||||||
|
.rodata start:0x000001E8 end:0x00000228
|
||||||
|
.data start:0x00000418 end:0x00000498
|
||||||
|
.bss start:0x000000C8 end:0x000000E8
|
||||||
|
|
||||||
|
REL/w06Dll/bowser.c:
|
||||||
|
.text start:0x00008F20 end:0x0000D0A4
|
||||||
|
.rodata start:0x00000228 end:0x000002D8
|
||||||
|
.data start:0x00000498 end:0x00000541
|
||||||
|
.bss start:0x000000E8 end:0x000000F5
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
fn_1_0 = .text:0x00000000; // type:function size:0x30
|
InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
|
||||||
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
fn_1_E0 = .text:0x000000E0; // type:function size:0x4C4
|
BoardCreate = .text:0x000000E0; // type:function size:0x4C4
|
||||||
fn_1_5A4 = .text:0x000005A4; // type:function size:0x18C
|
BoardDestroy = .text:0x000005A4; // type:function size:0x18C
|
||||||
fn_1_730 = .text:0x00000730; // type:function size:0x6C
|
fn_1_730 = .text:0x00000730; // type:function size:0x6C
|
||||||
fn_1_79C = .text:0x0000079C; // type:function size:0x20
|
fn_1_79C = .text:0x0000079C; // type:function size:0x20
|
||||||
fn_1_7BC = .text:0x000007BC; // type:function size:0x144
|
fn_1_7BC = .text:0x000007BC; // type:function size:0x144
|
||||||
|
|
@ -145,11 +145,11 @@ lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float
|
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double
|
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double
|
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 data:byte
|
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x2 data:byte
|
||||||
lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float
|
lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 data:byte
|
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x3 data:byte
|
||||||
lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte
|
lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte
|
||||||
lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 data:byte
|
lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x3 data:byte
|
||||||
lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte
|
lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte
|
||||||
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
|
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float
|
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float
|
||||||
|
|
@ -282,12 +282,12 @@ lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3
|
||||||
lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte
|
lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC
|
lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC
|
||||||
lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string
|
lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string
|
||||||
lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13
|
lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0xE
|
||||||
lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte
|
lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte
|
lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte
|
lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6
|
lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6
|
||||||
lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24
|
lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x20
|
||||||
lbl_1_data_208 = .data:0x00000208; // type:object size:0x20
|
lbl_1_data_208 = .data:0x00000208; // type:object size:0x20
|
||||||
lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte
|
lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte
|
||||||
lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte
|
lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte
|
||||||
|
|
@ -310,7 +310,9 @@ lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 data:string
|
||||||
lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string
|
lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string
|
||||||
lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string
|
lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string
|
||||||
lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string
|
lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string
|
||||||
lbl_1_data_380 = .data:0x00000380; // type:object size:0x98
|
lbl_1_data_380 = .data:0x00000380; // type:object size:0x11 data:string
|
||||||
|
lbl_1_data_394 = .data:0x00000394; // type:object size:0x38
|
||||||
|
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x4C
|
||||||
lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte
|
lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18
|
lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18
|
||||||
lbl_1_data_434 = .data:0x00000434; // type:object size:0x18
|
lbl_1_data_434 = .data:0x00000434; // type:object size:0x18
|
||||||
|
|
@ -344,7 +346,7 @@ lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte
|
||||||
lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte
|
lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte
|
||||||
lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte
|
lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6
|
lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6
|
||||||
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:2byte
|
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x6 data:2byte
|
||||||
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte
|
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte
|
lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte
|
lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,12 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/board_executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
|
REL/w21Dll/main.c:
|
||||||
|
.text start:0x000000E0 end:0x00000678
|
||||||
|
.rodata start:0x00000000 end:0x00000030
|
||||||
|
.data start:0x00000000 end:0x00000034
|
||||||
|
.bss start:0x00000000 end:0x0000000E
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
fn_1_0 = .text:0x00000000; // type:function size:0x30
|
InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
|
||||||
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
fn_1_E0 = .text:0x000000E0; // type:function size:0x2B0
|
BoardCreate = .text:0x000000E0; // type:function size:0x2B0
|
||||||
fn_1_390 = .text:0x00000390; // type:function size:0xBC
|
BoardDestroy = .text:0x00000390; // type:function size:0xBC
|
||||||
fn_1_44C = .text:0x0000044C; // type:function size:0x44
|
fn_1_44C = .text:0x0000044C; // type:function size:0x44
|
||||||
fn_1_490 = .text:0x00000490; // type:function size:0x4
|
fn_1_490 = .text:0x00000490; // type:function size:0x4
|
||||||
fn_1_494 = .text:0x00000494; // type:function size:0x4
|
fn_1_494 = .text:0x00000494; // type:function size:0x4
|
||||||
|
|
@ -22,6 +22,8 @@ lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte
|
lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte
|
lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_8 = .data:0x00000008; // type:object size:0x24 data:2byte
|
lbl_1_data_8 = .data:0x00000008; // type:object size:0x2 data:2byte
|
||||||
|
lbl_1_data_A = .data:0x0000000A; // type:object size:0x22 data:2byte
|
||||||
lbl_1_data_2C = .data:0x0000002C; // type:object size:0x8
|
lbl_1_data_2C = .data:0x0000002C; // type:object size:0x8
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xE
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8
|
||||||
|
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x6
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,11 @@ Sections:
|
||||||
.dtors type:rodata align:4
|
.dtors type:rodata align:4
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
|
|
||||||
|
REL/board_executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000E0
|
||||||
|
|
||||||
|
REL/w21Dll/main.c:
|
||||||
|
.text start:0x000000E0 end:0x000003E0
|
||||||
|
.rodata start:0x00000000 end:0x00000018
|
||||||
|
.data start:0x00000000 end:0x00000010
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
fn_1_0 = .text:0x00000000; // type:function size:0x30
|
InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
|
||||||
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
_prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
fn_1_E0 = .text:0x000000E0; // type:function size:0x1D4
|
BoardCreate = .text:0x000000E0; // type:function size:0x1D4
|
||||||
fn_1_2B4 = .text:0x000002B4; // type:function size:0xB8
|
BoardDestroy = .text:0x000002B4; // type:function size:0xB8
|
||||||
fn_1_36C = .text:0x0000036C; // type:function size:0x44
|
fn_1_36C = .text:0x0000036C; // type:function size:0x44
|
||||||
fn_1_3B0 = .text:0x000003B0; // type:function size:0x20
|
fn_1_3B0 = .text:0x000003B0; // type:function size:0x20
|
||||||
fn_1_3D0 = .text:0x000003D0; // type:function size:0x8
|
fn_1_3D0 = .text:0x000003D0; // type:function size:0x8
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,23 @@ Sections:
|
||||||
.rodata type:rodata align:8
|
.rodata type:rodata align:8
|
||||||
.data type:data align:8
|
.data type:data align:8
|
||||||
.bss type:bss align:8
|
.bss type:bss align:8
|
||||||
|
|
||||||
|
REL/executor.c:
|
||||||
|
.text start:0x00000000 end:0x000000A0
|
||||||
|
|
||||||
|
REL/ztardll/main.c:
|
||||||
|
.text start:0x000000A0 end:0x00007754
|
||||||
|
.rodata start:0x00000000 end:0x000001B8
|
||||||
|
.data start:0x00000000 end:0x000000B0
|
||||||
|
.bss start:0x00000000 end:0x00000070
|
||||||
|
|
||||||
|
REL/ztardll/font.c:
|
||||||
|
.text start:0x00007754 end:0x00007C00
|
||||||
|
.rodata start:0x000001B8 end:0x000001C0
|
||||||
|
.data start:0x000000B0 end:0x000003C8
|
||||||
|
|
||||||
|
REL/ztardll/select.c:
|
||||||
|
.text start:0x00007C00 end:0x0001236C
|
||||||
|
.rodata start:0x000001C0 end:0x00000298
|
||||||
|
.data start:0x000003C8 end:0x00000674
|
||||||
|
.bss start:0x00000070 end:0x000002D8
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
|
||||||
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
|
||||||
fn_1_A0 = .text:0x000000A0; // type:function size:0x384
|
ModuleProlog = .text:0x000000A0; // type:function size:0x384
|
||||||
fn_1_424 = .text:0x00000424; // type:function size:0x1350
|
fn_1_424 = .text:0x00000424; // type:function size:0x1350
|
||||||
fn_1_1774 = .text:0x00001774; // type:function size:0x57C
|
fn_1_1774 = .text:0x00001774; // type:function size:0x57C
|
||||||
fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0
|
fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0
|
||||||
|
|
@ -201,16 +201,16 @@ lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte
|
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string
|
||||||
lbl_1_data_22 = .data:0x00000022; // type:object size:0xA
|
lbl_1_data_22 = .data:0x00000022; // type:object size:0x8
|
||||||
lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18
|
lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18
|
||||||
lbl_1_data_44 = .data:0x00000044; // type:object size:0x6
|
lbl_1_data_44 = .data:0x00000044; // type:object size:0x6
|
||||||
lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC
|
lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC
|
||||||
lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring
|
lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:2byte
|
||||||
lbl_1_data_64 = .data:0x00000064; // type:object size:0x20
|
lbl_1_data_64 = .data:0x00000064; // type:object size:0x20
|
||||||
lbl_1_data_84 = .data:0x00000084; // type:object size:0x10
|
lbl_1_data_84 = .data:0x00000084; // type:object size:0x10
|
||||||
lbl_1_data_94 = .data:0x00000094; // type:object size:0xC
|
lbl_1_data_94 = .data:0x00000094; // type:object size:0xC
|
||||||
lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string
|
lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string
|
||||||
lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6
|
lbl_1_data_AA = .data:0x000000AA; // type:object size:0x4 data:string
|
||||||
lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x318
|
lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x318
|
||||||
lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x20
|
lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x20
|
||||||
lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x20
|
lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x20
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,7 @@ game/board/com.c:
|
||||||
.sdata start:0x801D36F0 end:0x801D36F8
|
.sdata start:0x801D36F0 end:0x801D36F8
|
||||||
.sdata2 start:0x801D5328 end:0x801D5350
|
.sdata2 start:0x801D5328 end:0x801D5350
|
||||||
|
|
||||||
game/board/overhead.c:
|
game/board/view.c:
|
||||||
.text start:0x800729A4 end:0x80073FF4
|
.text start:0x800729A4 end:0x80073FF4
|
||||||
.rodata start:0x8011DED0 end:0x8011DEF0
|
.rodata start:0x8011DED0 end:0x8011DEF0
|
||||||
.data start:0x80139BC8 end:0x80139CC8
|
.data start:0x80139BC8 end:0x80139CC8
|
||||||
|
|
@ -407,14 +407,14 @@ game/board/warp.c:
|
||||||
.sbss start:0x801D4028 end:0x801D4040
|
.sbss start:0x801D4028 end:0x801D4040
|
||||||
.sdata2 start:0x801D5730 end:0x801D5780
|
.sdata2 start:0x801D5730 end:0x801D5780
|
||||||
|
|
||||||
game/board/char_roulette.c:
|
game/board/char_wheel.c:
|
||||||
.text start:0x800816CC end:0x80082C90
|
.text start:0x800816CC end:0x80082C90
|
||||||
.data start:0x8013A248 end:0x8013A2B0
|
.data start:0x8013A248 end:0x8013A2B0
|
||||||
.sdata start:0x801D3758 end:0x801D3760
|
.sdata start:0x801D3758 end:0x801D3760
|
||||||
.sbss start:0x801D4040 end:0x801D4060
|
.sbss start:0x801D4040 end:0x801D4060
|
||||||
.sdata2 start:0x801D5780 end:0x801D5810
|
.sdata2 start:0x801D5780 end:0x801D5810
|
||||||
|
|
||||||
game/board/mushroom_space.c:
|
game/board/mushroom.c:
|
||||||
.text start:0x80082C90 end:0x80083EDC
|
.text start:0x80082C90 end:0x80083EDC
|
||||||
.sdata start:0x801D3760 end:0x801D3770
|
.sdata start:0x801D3760 end:0x801D3770
|
||||||
.sbss start:0x801D4060 end:0x801D4070
|
.sbss start:0x801D4060 end:0x801D4070
|
||||||
|
|
@ -429,7 +429,7 @@ game/board/star.c:
|
||||||
.sbss start:0x801D4070 end:0x801D4088
|
.sbss start:0x801D4070 end:0x801D4088
|
||||||
.sdata2 start:0x801D5898 end:0x801D5938
|
.sdata2 start:0x801D5898 end:0x801D5938
|
||||||
|
|
||||||
game/board/dice_roll.c:
|
game/board/roll.c:
|
||||||
.text start:0x80085CC8 end:0x80088368
|
.text start:0x80085CC8 end:0x80088368
|
||||||
.rodata start:0x8011E0B0 end:0x8011E118
|
.rodata start:0x8011E0B0 end:0x8011E118
|
||||||
.data start:0x8013A368 end:0x8013A408
|
.data start:0x8013A368 end:0x8013A408
|
||||||
|
|
@ -447,7 +447,7 @@ game/board/ui.c:
|
||||||
.sbss start:0x801D40A8 end:0x801D40E0
|
.sbss start:0x801D40A8 end:0x801D40E0
|
||||||
.sdata2 start:0x801D59E0 end:0x801D5AA0
|
.sdata2 start:0x801D59E0 end:0x801D5AA0
|
||||||
|
|
||||||
game/board/hidden_block.c:
|
game/board/block.c:
|
||||||
.text start:0x8008DF68 end:0x8008EE28
|
.text start:0x8008DF68 end:0x8008EE28
|
||||||
.rodata start:0x8011E200 end:0x8011E220
|
.rodata start:0x8011E200 end:0x8011E220
|
||||||
.data start:0x8013A608 end:0x8013A620
|
.data start:0x8013A608 end:0x8013A620
|
||||||
|
|
@ -483,7 +483,7 @@ game/board/battle.c:
|
||||||
.sbss start:0x801D4178 end:0x801D41A0
|
.sbss start:0x801D4178 end:0x801D41A0
|
||||||
.sdata2 start:0x801D5DE0 end:0x801D5E88
|
.sdata2 start:0x801D5DE0 end:0x801D5E88
|
||||||
|
|
||||||
game/board/fortune_space.c:
|
game/board/fortune.c:
|
||||||
.text start:0x8009D148 end:0x8009DFD0
|
.text start:0x8009D148 end:0x8009DFD0
|
||||||
.rodata start:0x8011E380 end:0x8011E3A8
|
.rodata start:0x8011E380 end:0x8011E3A8
|
||||||
.data start:0x8013AB10 end:0x8013AB28
|
.data start:0x8013AB10 end:0x8013AB28
|
||||||
|
|
@ -519,7 +519,7 @@ game/board/boo_house.c:
|
||||||
game/board/start.c:
|
game/board/start.c:
|
||||||
.text start:0x800A6EE4 end:0x800A9708
|
.text start:0x800A6EE4 end:0x800A9708
|
||||||
.rodata start:0x8011E3D0 end:0x8011E3F0
|
.rodata start:0x8011E3D0 end:0x8011E3F0
|
||||||
.data start:0x8013AF70 end:0x8013B1F8
|
.data start:0x8013AF70 end:0x8013B0D8
|
||||||
.bss start:0x801A4CD8 end:0x801A4CF0
|
.bss start:0x801A4CD8 end:0x801A4CF0
|
||||||
.sdata start:0x801D3840 end:0x801D3850
|
.sdata start:0x801D3840 end:0x801D3850
|
||||||
.sbss start:0x801D4230 end:0x801D4240
|
.sbss start:0x801D4230 end:0x801D4240
|
||||||
|
|
@ -528,9 +528,9 @@ game/board/start.c:
|
||||||
game/board/last5.c:
|
game/board/last5.c:
|
||||||
.text start:0x800A9708 end:0x800ADB84
|
.text start:0x800A9708 end:0x800ADB84
|
||||||
.rodata start:0x8011E3F0 end:0x8011E430
|
.rodata start:0x8011E3F0 end:0x8011E430
|
||||||
.data start:0x8013B1F8 end:0x8013B3F0
|
.data start:0x8013B0D8 end:0x8013B3F0
|
||||||
.bss start:0x801A4CF0 end:0x801A4D38
|
.bss start:0x801A4CF0 end:0x801A4D38
|
||||||
.sdata start:0x801D3850 end:0x801D38B8
|
.sdata start:0x801D3850 end:0x801D38A8
|
||||||
.sbss start:0x801D4240 end:0x801D4260
|
.sbss start:0x801D4240 end:0x801D4260
|
||||||
.sdata2 start:0x801D6198 end:0x801D6298
|
.sdata2 start:0x801D6198 end:0x801D6298
|
||||||
|
|
||||||
|
|
@ -538,6 +538,7 @@ game/board/pause.c:
|
||||||
.text start:0x800ADB84 end:0x800B1974
|
.text start:0x800ADB84 end:0x800B1974
|
||||||
.data start:0x8013B3F0 end:0x8013B518
|
.data start:0x8013B3F0 end:0x8013B518
|
||||||
.bss start:0x801A4D38 end:0x801A4D68
|
.bss start:0x801A4D38 end:0x801A4D68
|
||||||
|
.sdata start:0x801D38A8 end:0x801D38B8
|
||||||
.sbss start:0x801D4260 end:0x801D4280
|
.sbss start:0x801D4260 end:0x801D4280
|
||||||
.sdata2 start:0x801D6298 end:0x801D6350
|
.sdata2 start:0x801D6298 end:0x801D6350
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
187
configure.py
187
configure.py
|
|
@ -317,7 +317,7 @@ config.libs = [
|
||||||
Object(Matching, "game/decode.c"),
|
Object(Matching, "game/decode.c"),
|
||||||
Object(Matching, "game/font.c"),
|
Object(Matching, "game/font.c"),
|
||||||
Object(Matching, "game/init.c"),
|
Object(Matching, "game/init.c"),
|
||||||
Object(NonMatching, "game/jmp.c"),
|
Object(Matching, "game/jmp.c"),
|
||||||
Object(Matching, "game/malloc.c"),
|
Object(Matching, "game/malloc.c"),
|
||||||
Object(Matching, "game/memory.c"),
|
Object(Matching, "game/memory.c"),
|
||||||
Object(Matching, "game/printfunc.c"),
|
Object(Matching, "game/printfunc.c"),
|
||||||
|
|
@ -327,9 +327,9 @@ config.libs = [
|
||||||
Object(Matching, "game/hsfload.c"),
|
Object(Matching, "game/hsfload.c"),
|
||||||
Object(NonMatching, "game/hsfdraw.c"),
|
Object(NonMatching, "game/hsfdraw.c"),
|
||||||
Object(Matching, "game/hsfman.c"),
|
Object(Matching, "game/hsfman.c"),
|
||||||
Object(NonMatching, "game/hsfmotion.c"),
|
Object(Matching, "game/hsfmotion.c"),
|
||||||
Object(Matching, "game/hsfanim.c"),
|
Object(Matching, "game/hsfanim.c"),
|
||||||
Object(NonMatching, "game/hsfex.c"),
|
Object(Matching, "game/hsfex.c"),
|
||||||
Object(Matching, "game/perf.c"),
|
Object(Matching, "game/perf.c"),
|
||||||
Object(Matching, "game/objmain.c"),
|
Object(Matching, "game/objmain.c"),
|
||||||
Object(NonMatching, "game/fault.c"),
|
Object(NonMatching, "game/fault.c"),
|
||||||
|
|
@ -338,13 +338,13 @@ config.libs = [
|
||||||
Object(NonMatching, "game/objdll.c"),
|
Object(NonMatching, "game/objdll.c"),
|
||||||
Object(Matching, "game/frand.c"),
|
Object(Matching, "game/frand.c"),
|
||||||
Object(Matching, "game/audio.c"),
|
Object(Matching, "game/audio.c"),
|
||||||
Object(NonMatching, "game/EnvelopeExec.c"),
|
Object(Matching, "game/EnvelopeExec.c"),
|
||||||
Object(NonMatching, "game/minigame_seq.c"),
|
Object(NonMatching, "game/minigame_seq.c"),
|
||||||
Object(Matching, "game/ovllist.c"),
|
Object(Matching, "game/ovllist.c"),
|
||||||
Object(NonMatching, "game/esprite.c"),
|
Object(Matching, "game/esprite.c"),
|
||||||
Object(NonMatching, "game/code_8003FF68.c"),
|
Object(NonMatching, "game/code_8003FF68.c"),
|
||||||
Object(NonMatching, "game/ClusterExec.c"),
|
Object(Matching, "game/ClusterExec.c"),
|
||||||
Object(NonMatching, "game/ShapeExec.c"),
|
Object(Matching, "game/ShapeExec.c"),
|
||||||
Object(Matching, "game/wipe.c"),
|
Object(Matching, "game/wipe.c"),
|
||||||
Object(Matching, "game/window.c"),
|
Object(Matching, "game/window.c"),
|
||||||
Object(Matching, "game/messdata.c"),
|
Object(Matching, "game/messdata.c"),
|
||||||
|
|
@ -352,35 +352,35 @@ config.libs = [
|
||||||
Object(Matching, "game/armem.c"),
|
Object(Matching, "game/armem.c"),
|
||||||
Object(NonMatching, "game/chrman.c"),
|
Object(NonMatching, "game/chrman.c"),
|
||||||
Object(NonMatching, "game/mapspace.c"),
|
Object(NonMatching, "game/mapspace.c"),
|
||||||
Object(NonMatching, "game/THPSimple.c"),
|
Object(Matching, "game/THPSimple.c"),
|
||||||
Object(NonMatching, "game/THPDraw.c"),
|
Object(Matching, "game/THPDraw.c"),
|
||||||
Object(NonMatching, "game/thpmain.c"),
|
Object(Matching, "game/thpmain.c"),
|
||||||
Object(NonMatching, "game/objsub.c"),
|
Object(NonMatching, "game/objsub.c"),
|
||||||
Object(Matching, "game/flag.c"),
|
Object(Matching, "game/flag.c"),
|
||||||
Object(Matching, "game/saveload.c"),
|
Object(Matching, "game/saveload.c"),
|
||||||
Object(NonMatching, "game/sreset.c"),
|
Object(NonMatching, "game/sreset.c"),
|
||||||
Object(NonMatching, "game/board/main.c"),
|
Object(Matching, "game/board/main.c"),
|
||||||
Object(NonMatching, "game/board/player.c"),
|
Object(NonMatching, "game/board/player.c"),
|
||||||
Object(NonMatching, "game/board/model.c"),
|
Object(Matching, "game/board/model.c"),
|
||||||
Object(Matching, "game/board/window.c"),
|
Object(Matching, "game/board/window.c"),
|
||||||
Object(NonMatching, "game/board/audio.c"),
|
Object(NonMatching, "game/board/audio.c"),
|
||||||
Object(NonMatching, "game/board/com.c"),
|
Object(NonMatching, "game/board/com.c"),
|
||||||
Object(NonMatching, "game/board/overhead.c"),
|
Object(NonMatching, "game/board/view.c"),
|
||||||
Object(NonMatching, "game/board/space.c"),
|
Object(NonMatching, "game/board/space.c"),
|
||||||
Object(NonMatching, "game/board/shop.c"),
|
Object(NonMatching, "game/board/shop.c"),
|
||||||
Object(NonMatching, "game/board/lottery.c"),
|
Object(NonMatching, "game/board/lottery.c"),
|
||||||
Object(Matching, "game/board/basic_space.c"),
|
Object(Matching, "game/board/basic_space.c"),
|
||||||
Object(Matching, "game/board/warp.c"),
|
Object(Matching, "game/board/warp.c"),
|
||||||
Object(NonMatching, "game/board/char_roulette.c"),
|
Object(NonMatching, "game/board/char_wheel.c"),
|
||||||
Object(NonMatching, "game/board/mushroom_space.c"),
|
Object(NonMatching, "game/board/mushroom.c"),
|
||||||
Object(NonMatching, "game/board/star.c"),
|
Object(NonMatching, "game/board/star.c"),
|
||||||
Object(NonMatching, "game/board/dice_roll.c"),
|
Object(NonMatching, "game/board/roll.c"),
|
||||||
Object(NonMatching, "game/board/ui.c"),
|
Object(NonMatching, "game/board/ui.c"),
|
||||||
Object(NonMatching, "game/board/hidden_block.c"),
|
Object(NonMatching, "game/board/block.c"),
|
||||||
Object(NonMatching, "game/board/item.c"),
|
Object(NonMatching, "game/board/item.c"),
|
||||||
Object(NonMatching, "game/board/bowser.c"),
|
Object(NonMatching, "game/board/bowser.c"),
|
||||||
Object(NonMatching, "game/board/battle.c"),
|
Object(NonMatching, "game/board/battle.c"),
|
||||||
Object(NonMatching, "game/board/fortune_space.c"),
|
Object(NonMatching, "game/board/fortune.c"),
|
||||||
Object(NonMatching, "game/board/boo.c"),
|
Object(NonMatching, "game/board/boo.c"),
|
||||||
Object(NonMatching, "game/board/mg_setup.c"),
|
Object(NonMatching, "game/board/mg_setup.c"),
|
||||||
Object(NonMatching, "game/board/boo_house.c"),
|
Object(NonMatching, "game/board/boo_house.c"),
|
||||||
|
|
@ -767,7 +767,7 @@ config.libs = [
|
||||||
Rel('bootDll',
|
Rel('bootDll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
Object(NonMatching, "REL/bootDll/bootDll.c"),
|
Object(NonMatching, "REL/bootDll/main.c"),
|
||||||
Object(Matching, "REL/bootDll/nintendo_data.c"),
|
Object(Matching, "REL/bootDll/nintendo_data.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
@ -810,12 +810,44 @@ config.libs = [
|
||||||
Object(NonMatching, "REL/m404Dll/main.c"),
|
Object(NonMatching, "REL/m404Dll/main.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Rel('m405Dll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/m405Dll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('m406Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/executor.c"),
|
||||||
|
Object(NonMatching, "REL/m406Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/m406Dll/map.c"),
|
||||||
|
Object(NonMatching, "REL/m406Dll/player.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('m407dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/executor.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/player.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/map.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/camera.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/whomp.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/whomp_score.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/effect.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/m407dll/score.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
Rel('mentDll',
|
Rel('mentDll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(NonMatching, "REL/mentDll/common.c"),
|
Object(NonMatching, "REL/mentDll/common.c"),
|
||||||
Object(NonMatching, "REL/mentDll/main.c"),
|
Object(NonMatching, "REL/mentDll/main.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Rel('messDll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/executor.c"),
|
||||||
|
Object(NonMatching, "REL/messDll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
Rel('mgmodedll',
|
Rel('mgmodedll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
|
|
@ -846,6 +878,41 @@ config.libs = [
|
||||||
Object(NonMatching, "REL/mpexDll/mgname.c"),
|
Object(NonMatching, "REL/mpexDll/mgname.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Rel('mstory2Dll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/board_entrance.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/board_clear.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/board_miss.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/mg_clear.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/mg_miss.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/ending.c"),
|
||||||
|
Object(NonMatching, "REL/mstory2Dll/save.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('mstory3Dll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/mstory3Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/mstory3Dll/result_seq.c"),
|
||||||
|
Object(NonMatching, "REL/mstory3Dll/result.c"),
|
||||||
|
Object(NonMatching, "REL/mstory3Dll/win_effect.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('mstory4Dll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/mstory4Dll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('mstoryDll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/mstoryDll/main.c"),
|
||||||
|
Object(NonMatching, "REL/mstoryDll/board_clear.c"),
|
||||||
|
Object(NonMatching, "REL/mstoryDll/board_miss.c"),
|
||||||
|
Object(NonMatching, "REL/mstoryDll/mg_clear.c"),
|
||||||
|
Object(NonMatching, "REL/mstoryDll/mg_miss.c"),
|
||||||
|
Object(NonMatching, "REL/mstoryDll/save.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
Rel('option',
|
Rel('option',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
|
|
@ -870,22 +937,35 @@ config.libs = [
|
||||||
Object(NonMatching, "REL/present/common.c"),
|
Object(NonMatching, "REL/present/common.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Rel('resultDll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/executor.c"),
|
||||||
|
Object(NonMatching, "REL/resultDll/main.c"),
|
||||||
|
Object(NonMatching, "REL/resultDll/battle.c"),
|
||||||
|
Object(NonMatching, "REL/resultDll/datalist.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('safDll',
|
||||||
|
objects = {
|
||||||
|
Object(NonMatching, "REL/safDll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
Rel('selmenuDll',
|
Rel('selmenuDll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
Object(NonMatching, "REL/selmenuDll/selmenuDll.c"),
|
Object(NonMatching, "REL/selmenuDll/main.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Rel('staffDll',
|
Rel('staffDll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
Object(NonMatching, "REL/staffDll/staffDll.c"),
|
Object(NonMatching, "REL/staffDll/main.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Rel('subchrselDll',
|
Rel('subchrselDll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/executor.c"),
|
Object(Matching, "REL/executor.c"),
|
||||||
Object(NonMatching, "REL/subchrselDll/subchrselDll.c"),
|
Object(Matching, "REL/subchrselDll/main.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Rel('w01Dll',
|
Rel('w01Dll',
|
||||||
|
|
@ -911,13 +991,46 @@ config.libs = [
|
||||||
Rel('w03Dll',
|
Rel('w03Dll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/board_executor.c"),
|
Object(Matching, "REL/board_executor.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/main.c"),
|
Object(Matching, "REL/w03Dll/main.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/statue.c"),
|
Object(Matching, "REL/w03Dll/statue.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/condor.c"),
|
Object(NonMatching, "REL/w03Dll/condor.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/river.c"),
|
Object(Matching, "REL/w03Dll/river.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/smoke.c"),
|
Object(Matching, "REL/w03Dll/smoke.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/mg_coin.c"),
|
Object(NonMatching, "REL/w03Dll/mg_coin.c"),
|
||||||
Object(NonMatching, "REL/w03Dll/mg_item.c"),
|
Object(Matching, "REL/w03Dll/mg_item.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('w04Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/bridge.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/boo_event.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/big_boo.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/mg_item.c"),
|
||||||
|
Object(NonMatching, "REL/w04Dll/mg_coin.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('w05Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/hotel.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/monkey.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/dolphin.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/mg_item.c"),
|
||||||
|
Object(NonMatching, "REL/w05Dll/mg_coin.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('w05Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/main.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/mg_item.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/mg_coin.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/fire.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/bridge.c"),
|
||||||
|
Object(NonMatching, "REL/w06Dll/bowser.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Rel('w10Dll',
|
Rel('w10Dll',
|
||||||
|
|
@ -929,6 +1042,26 @@ config.libs = [
|
||||||
Object(Matching, "REL/w10Dll/tutorial.c"),
|
Object(Matching, "REL/w10Dll/tutorial.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Rel('w20Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
Object(NonMatching, "REL/w20Dll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('w21Dll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
Object(NonMatching, "REL/w21Dll/main.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
Rel('ztardll',
|
||||||
|
objects = {
|
||||||
|
Object(Matching, "REL/executor.c"),
|
||||||
|
Object(NonMatching, "REL/ztardll/main.c"),
|
||||||
|
Object(NonMatching, "REL/ztardll/font.c"),
|
||||||
|
Object(NonMatching, "REL/ztardll/select.c"),
|
||||||
|
}
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
if args.mode == "configure":
|
if args.mode == "configure":
|
||||||
|
|
|
||||||
29
include/REL/w03Dll.h
Normal file
29
include/REL/w03Dll.h
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "REL/executor.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/window.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
|
||||||
|
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||||
|
|
||||||
|
typedef struct w03StructUnk0 {
|
||||||
|
/* 0x00 */ Vec unk_00;
|
||||||
|
/* 0x0C */ Vec unk_0C;
|
||||||
|
/* 0x18 */ Vec unk_18;
|
||||||
|
/* 0x24 */ s32 datanum;
|
||||||
|
} w03StructUnk0;
|
||||||
|
|
||||||
|
typedef struct w03UnkStruct2{
|
||||||
|
u8 unk0 : 1;
|
||||||
|
} w03UnkStruct2;
|
||||||
|
|
||||||
|
typedef struct w03State {
|
||||||
|
s8 unk0;
|
||||||
|
u8 unk1;
|
||||||
|
u8 unk2;
|
||||||
|
s8 unk3;
|
||||||
|
u16 unk4;
|
||||||
|
u16 unk6;
|
||||||
|
s16 unk8;
|
||||||
|
} w03State;
|
||||||
|
|
@ -3,18 +3,28 @@
|
||||||
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
#ifndef _BOARD_SPACE_EVENT_FUNC
|
||||||
|
#define _BOARD_SPACE_EVENT_FUNC
|
||||||
|
typedef s32 (*BoardSpaceEventFunc)(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _BOARD_MAIN_H
|
||||||
|
typedef void (*BoardLightHook)(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
void BoardCameraTargetModelSet(s16 model);
|
void BoardCameraTargetModelSet(s16 model);
|
||||||
void BoardCameraMotionStartEx(s16, Vec *, Vec *, f32, f32, s16);
|
void BoardCameraMotionStartEx(s16, Vec *, Vec *, f32, f32, s16);
|
||||||
void BoardCameraMotionWait(void);
|
void BoardCameraMotionWait(void);
|
||||||
void fn_8007A360(s32);
|
s32 BoardSpacePosGet(s32, s32, Vec*);
|
||||||
void fn_8007F894(void);
|
void BoardShopTutorialExec(s32);
|
||||||
|
void BoardLotteryTutorialExec(void);
|
||||||
s16 BoardStarHostMdlGet(void);
|
s16 BoardStarHostMdlGet(void);
|
||||||
void BoardStatusShowSetAll(s32);
|
void BoardStatusShowSetAll(s32);
|
||||||
void fn_800A4C88(void);
|
void BoardMGSetupTutorialExec(void);
|
||||||
void fn_800A6B10(void);
|
void BoardBooHouseTutorialExec(void);
|
||||||
void BoardStatusItemSet(s32);
|
void BoardStatusItemSet(s32);
|
||||||
void BoardTutorialItemSet(s32);
|
void BoardTutorialItemSet(s32);
|
||||||
void fn_80082AAC(s32);
|
void BoardCharWheelSetTarget(s32);
|
||||||
void BoardTutorialDirInputSet(s32, s32, s32);
|
void BoardTutorialDirInputSet(s32, s32, s32);
|
||||||
void BoardSpaceStarSetIndex(s32);
|
void BoardSpaceStarSetIndex(s32);
|
||||||
void BoardModelRotYSet(s16, f32);
|
void BoardModelRotYSet(s16, f32);
|
||||||
|
|
@ -23,7 +33,7 @@ void BoardModelLayerSet(s16, u8);
|
||||||
void BoardTutorialHostSet(s16);
|
void BoardTutorialHostSet(s16);
|
||||||
s16 BoardModelIDGet(s16);
|
s16 BoardModelIDGet(s16);
|
||||||
void BoardModelScaleSetV(s16, Vec*);
|
void BoardModelScaleSetV(s16, Vec*);
|
||||||
void BoardLightHookSet(void*, void*);
|
void BoardLightHookSet(BoardLightHook set, BoardLightHook reset);
|
||||||
s16 BoardModelCreate(s32, void*, s32);
|
s16 BoardModelCreate(s32, void*, s32);
|
||||||
void BoardModelKill(s16);
|
void BoardModelKill(s16);
|
||||||
void fn_8006DDE8(s16, f32);
|
void fn_8006DDE8(s16, f32);
|
||||||
|
|
@ -33,18 +43,26 @@ void BoardModelPosSetV(s16, Vec*);
|
||||||
void BoardModelPosSet(s16, f32, f32, f32);
|
void BoardModelPosSet(s16, f32, f32, f32);
|
||||||
void BoardModelRotSetV(s16 arg0, Vec* arg1);
|
void BoardModelRotSetV(s16 arg0, Vec* arg1);
|
||||||
void BoardModelVisibilitySet(s16, s32);
|
void BoardModelVisibilitySet(s16, s32);
|
||||||
|
void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func);
|
||||||
|
void BoardSpaceWalkMiniEventFuncSet(BoardSpaceEventFunc func);
|
||||||
|
void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func);
|
||||||
|
s32 BoardSpaceFlagSearch(s32, u32);
|
||||||
void BoardSpaceInit(s32);
|
void BoardSpaceInit(s32);
|
||||||
void BoardSpaceDestroy(void);
|
void BoardSpaceDestroy(void);
|
||||||
void fn_80077AAC(s16);
|
void BoardShopHostSet(s16);
|
||||||
void fn_8007A83C(s16);
|
void BoardLotteryHostSet(s16);
|
||||||
void fn_80083EDC(s16);
|
void BoardStarHostSet(s16);
|
||||||
void fn_800A4F6C(s16);
|
void BoardBooHouseHostSet(s16);
|
||||||
void BoardTutorialHookSet(void*);
|
void BoardTutorialHookSet(void*);
|
||||||
void BoardTutorialBlockSetPos(s32, s32);
|
void BoardTutorialBlockSetPos(s32, s32);
|
||||||
s32 BoardCameraRotGet(Vec*);
|
s32 BoardCameraRotGet(Vec*);
|
||||||
void BoardModelScaleSet(s16, f32, f32, f32);
|
void BoardModelScaleSet(s16, f32, f32, f32);
|
||||||
s32 BoardIsKill(void);
|
s32 BoardIsKill(void);
|
||||||
void BoardModelMtxSet(s16, Mtx);
|
void BoardModelMtxSet(s16, Mtx*);
|
||||||
void BoardModelRotSet(s16, f32, f32, f32);
|
void BoardModelRotSet(s16, f32, f32, f32);
|
||||||
|
|
||||||
|
void BoardBowserExec(s32 player, s32 space);
|
||||||
|
void BoardBattleExec(s32 player, s32 space);
|
||||||
|
void BoardFortuneExec(s32 player, s32 space);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,18 @@ static inline void GXColor1x8(u8 index) {
|
||||||
GXWGFifo.u8 = index;
|
GXWGFifo.u8 = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void GXPosition1x16(u16 index) {
|
||||||
|
GXWGFifo.u16 = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void GXColor1x16(u16 index) {
|
||||||
|
GXWGFifo.u16 = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void GXTexCoord1x16(u16 index) {
|
||||||
|
GXWGFifo.u16 = index;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void GXEnd(void) {}
|
static inline void GXEnd(void) {}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,24 @@ static inline u8 __OSf32tou8(register f32 inF)
|
||||||
|
|
||||||
static inline void OSf32tou8(f32 *f, u8 *out) { *out = __OSf32tou8(*f); }
|
static inline void OSf32tou8(f32 *f, u8 *out) { *out = __OSf32tou8(*f); }
|
||||||
|
|
||||||
|
static inline s8 __OSf32tos8(register f32 inF)
|
||||||
|
{
|
||||||
|
u32 tmp;
|
||||||
|
register u32 *tmpPtr = &tmp;
|
||||||
|
register s8 out;
|
||||||
|
// clang-format off
|
||||||
|
asm {
|
||||||
|
psq_st inF, 0(tmpPtr), 0x1, OS_FASTCAST_S8
|
||||||
|
lbz out, 0(tmpPtr)
|
||||||
|
extsb out, out //HACK to match fast cast inlines
|
||||||
|
}
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void OSf32tos8(f32 *f, s8 *out) { *out = __OSf32tos8(*f); }
|
||||||
|
|
||||||
static inline u16 __OSf32tou16(register f32 inF)
|
static inline u16 __OSf32tou16(register f32 inF)
|
||||||
{
|
{
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
|
||||||
13
include/game/ClusterExec.h
Normal file
13
include/game/ClusterExec.h
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef _GAME_CLUSTER_EXEC_H
|
||||||
|
#define _GAME_CLUSTER_EXEC_H
|
||||||
|
|
||||||
|
#include "game/hsfformat.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
|
||||||
|
float GetClusterCurve(HsfTrack *arg0, float arg1);
|
||||||
|
float GetClusterWeightCurve(HsfTrack *arg0, float arg1);
|
||||||
|
void SetClusterMain(HsfCluster *arg0);
|
||||||
|
void ClusterProc(ModelData *arg0);
|
||||||
|
void ClusterMotionExec(ModelData *arg0);
|
||||||
|
|
||||||
|
#endif
|
||||||
12
include/game/EnvelopeExec.h
Normal file
12
include/game/EnvelopeExec.h
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#ifndef _GAME_ENVELOPE_EXEC_H
|
||||||
|
#define _GAME_ENVELOPE_EXEC_H
|
||||||
|
|
||||||
|
#include "game/hsfformat.h"
|
||||||
|
|
||||||
|
void InitEnvelope(HsfData *arg0);
|
||||||
|
void EnvelopeProc(HsfData *arg0);
|
||||||
|
void InitVtxParm(HsfData *arg0);
|
||||||
|
|
||||||
|
extern Vec *Vertextop;
|
||||||
|
|
||||||
|
#endif
|
||||||
8
include/game/ShapeExec.h
Executable file
8
include/game/ShapeExec.h
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef _GAME_SHAPE_EXEC_H
|
||||||
|
#define _GAME_SHAPE_EXEC_H
|
||||||
|
|
||||||
|
#include "game/hsfformat.h"
|
||||||
|
|
||||||
|
void ShapeProc(HsfData *arg0);
|
||||||
|
|
||||||
|
#endif
|
||||||
10
include/game/THPDraw.h
Executable file
10
include/game/THPDraw.h
Executable file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef _GAME_THPDRAW_H
|
||||||
|
#define _GAME_THPDRAW_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
void THPGXRestore(void);
|
||||||
|
void THPGXYuv2RgbSetup(GXRenderModeObj *obj, GXColor *arg1, Mtx arg2);
|
||||||
|
void THPGXYuv2RgbDraw(u32 *yImage, u32 *uImage, u32 *vImage, s16 x, s16 y, s16 texWidth, s16 texHeight, s16 polyWidth, s16 polyHeight);
|
||||||
|
|
||||||
|
#endif
|
||||||
84
include/game/THPSimple.h
Executable file
84
include/game/THPSimple.h
Executable file
|
|
@ -0,0 +1,84 @@
|
||||||
|
#ifndef _GAME_THPSIMPLE_H
|
||||||
|
#define _GAME_THPSIMPLE_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "dolphin/thp/THPFile.h"
|
||||||
|
#include "dolphin/thp/THPInfo.h"
|
||||||
|
|
||||||
|
// THPReadBuffer?
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ s32 *unk00;
|
||||||
|
/* 0x04 */ s32 unk04;
|
||||||
|
/* 0x08 */ s32 unk08;
|
||||||
|
} UnkThpStruct01; // Size 0xC
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ void *unk00;
|
||||||
|
/* 0x04 */ void *unk04;
|
||||||
|
/* 0x08 */ void *unk08;
|
||||||
|
/* 0x0C */ s32 unk0C;
|
||||||
|
} UnkThpStruct02; // Size 0x10
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ void *unk00;
|
||||||
|
/* 0x04 */ void *unk04;
|
||||||
|
/* 0x08 */ u32 unk08;
|
||||||
|
} UnkThpStruct03; // Size 0xC
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ u32 unk00;
|
||||||
|
/* 0x04 */ u32 unk04;
|
||||||
|
} UnkThpStruct04; // Size 8
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x000 */ DVDFileInfo unk00;
|
||||||
|
/* 0x03C */ THPHeader unk3C;
|
||||||
|
/* 0x06C */ THPFrameCompInfo unk6C;
|
||||||
|
/* 0x080 */ UnkThpStruct04 unk80;
|
||||||
|
/* 0x088 */ u8 unk88[0xC];
|
||||||
|
/* 0x094 */ void *unk94;
|
||||||
|
/* 0x098 */ s32 unk98;
|
||||||
|
/* 0x09C */ u8 unk9C;
|
||||||
|
/* 0x09D */ u8 unk9D;
|
||||||
|
/* 0x09E */ u8 unk9E;
|
||||||
|
/* 0x09F */ u8 unk9F;
|
||||||
|
/* 0x0A0 */ s32 unkA0;
|
||||||
|
/* 0x0A4 */ s32 unkA4;
|
||||||
|
/* 0x0A8 */ u32 unkA8;
|
||||||
|
/* 0x0AC */ s32 unkAC;
|
||||||
|
/* 0x0B0 */ s32 unkB0;
|
||||||
|
/* 0x0B4 */ s32 unkB4;
|
||||||
|
/* 0x0B8 */ s32 unkB8;
|
||||||
|
/* 0x0BC */ float unkBC;
|
||||||
|
/* 0x0C0 */ float unkC0;
|
||||||
|
/* 0x0C4 */ float unkC4;
|
||||||
|
/* 0x0C8 */ s32 unkC8;
|
||||||
|
/* 0x0CC */ UnkThpStruct01 unkCC[10];
|
||||||
|
/* 0x144 */ UnkThpStruct02 unk144[2];
|
||||||
|
/* 0x164 */ UnkThpStruct03 unk164[4];
|
||||||
|
/* 0x194 */ s32 unk194;
|
||||||
|
/* 0x198 */ s32 unk198;
|
||||||
|
/* 0x19C */ u8 unk19C;
|
||||||
|
/* 0x19D */ char unk19D[1];
|
||||||
|
/* 0x19E */ s16 unk19E;
|
||||||
|
} UnkThpStruct10; // Size 0x1A0
|
||||||
|
|
||||||
|
s32 THPSimpleInit(s32 arg0);
|
||||||
|
void THPSimpleQuit(void);
|
||||||
|
s32 THPSimpleOpen(char *arg0);
|
||||||
|
s32 THPSimpleClose(void);
|
||||||
|
s32 THPSimpleCalcNeedMemory(void);
|
||||||
|
s32 THPSimpleSetBuffer(void *arg0);
|
||||||
|
s32 THPSimplePreLoad(s32 arg0);
|
||||||
|
void THPSimpleAudioStart(void);
|
||||||
|
void THPSimpleAudioStop(void);
|
||||||
|
s32 THPSimpleLoadStop(void);
|
||||||
|
s32 THPSimpleDecode(void);
|
||||||
|
s32 THPSimpleDrawCurrentFrame(GXRenderModeObj *arg0, GXColor *arg1, Mtx arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
|
||||||
|
s32 THPSimpleGetVideoInfo(UnkThpStruct04 *arg0);
|
||||||
|
s32 THPSimpleGetTotalFrame(void);
|
||||||
|
s32 THPSimpleSetVolume(s32 left, s32 right);
|
||||||
|
|
||||||
|
extern UnkThpStruct10 SimpleControl;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -18,8 +18,8 @@ void HuAudFXStop(s32 arg0);
|
||||||
void HuAudFXAllStop(void);
|
void HuAudFXAllStop(void);
|
||||||
void HuAudFXFadeOut(s32 arg0, s32 arg1);
|
void HuAudFXFadeOut(s32 arg0, s32 arg1);
|
||||||
void HuAudFXPanning(s32 arg0, s16 arg1);
|
void HuAudFXPanning(s32 arg0, s16 arg1);
|
||||||
void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3);
|
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3);
|
||||||
void HuAudFXListnerSetEX(s32 arg0, s32 arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
|
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
|
||||||
void HuAudFXListnerUpdate(s32 arg0, s32 arg1);
|
void HuAudFXListnerUpdate(s32 arg0, s32 arg1);
|
||||||
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1);
|
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1);
|
||||||
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1);
|
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1);
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
void BoardEventLandBlue(s32, s16);
|
void BoardEventLandBlue(s32, s32);
|
||||||
void BoardEventLandRed(s32, s16);
|
void BoardEventLandRed(s32, s32);
|
||||||
s8 BoardCoinChgCreate(Vec*, s8);
|
s8 BoardCoinChgCreate(Vec*, s8);
|
||||||
s32 BoardCoinChgExist(s32);
|
s32 BoardCoinChgExist(s32);
|
||||||
void BoardCoinChgHide(s32);
|
void BoardCoinChgHide(s32);
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,7 @@ static inline s32 BoardCurrGet()
|
||||||
|
|
||||||
static inline s32 BoardPartyFlagGet()
|
static inline s32 BoardPartyFlagGet()
|
||||||
{
|
{
|
||||||
s32 value = GWSystem.party;
|
return GWSystem.party;
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern BoardCameraData boardCamera;
|
extern BoardCameraData boardCamera;
|
||||||
|
|
@ -73,17 +72,27 @@ typedef void (*BoardFunc)(void);
|
||||||
typedef void (*BoardLightHook)(void);
|
typedef void (*BoardLightHook)(void);
|
||||||
typedef void (*BoardCameraPosCalcFunc)(BoardCameraData *camera);
|
typedef void (*BoardCameraPosCalcFunc)(BoardCameraData *camera);
|
||||||
|
|
||||||
|
typedef void (*BoardTurnStartHook)(s32 player, s32 space);
|
||||||
|
|
||||||
|
extern BoardTurnStartHook boardTurnStartFunc;
|
||||||
|
extern BoardFunc boardTurnFunc;
|
||||||
|
extern BoardLightHook boardLightResetHook;
|
||||||
|
extern BoardLightHook boardLightSetHook;
|
||||||
|
|
||||||
void BoardCommonInit(BoardFunc create, BoardFunc destroy);
|
void BoardCommonInit(BoardFunc create, BoardFunc destroy);
|
||||||
void BoardKill(void);
|
void BoardKill(void);
|
||||||
s32 BoardIsKill(void);
|
s32 BoardIsKill(void);
|
||||||
void BoardPauseEnableSet(s32 value);
|
void BoardPauseDisableSet(s32 value);
|
||||||
s32 BoardPauseEnableGet();
|
s32 BoardPauseDisableGet();
|
||||||
void BoardSaveInit(s32 board);
|
void BoardSaveInit(s32 board);
|
||||||
void BoardStoryConfigSet(s32 mg_type, s32 diff_story);
|
void BoardStoryConfigSet(s32 mg_type, s32 diff_story);
|
||||||
void BoardPartyConfigSet(s32 team, s32 bonus_star, s32 mg_type, s32 max_turn, s32 p1_handicap, s32 p2_handicap, s32 p3_handicap, s32 p4_handicap);
|
void BoardPartyConfigSet(s32 team, s32 bonus_star, s32 mg_type, s32 max_turn, s32 p1_handicap, s32 p2_handicap, s32 p3_handicap, s32 p4_handicap);
|
||||||
BOOL BoardTurnNext(void);
|
s32 BoardTurnNext(void);
|
||||||
void BoardNextOvlSet(OverlayID overlay);
|
void BoardNextOvlSet(OverlayID overlay);
|
||||||
s32 BoardStartCheck(void);
|
s32 BoardStartCheck(void);
|
||||||
|
void BoardLightHookSet(BoardLightHook set, BoardLightHook reset);
|
||||||
|
void BoardLightSetExec(void);
|
||||||
|
void BoardLightResetExec(void);
|
||||||
void BoardCameraBackup(void);
|
void BoardCameraBackup(void);
|
||||||
void BoardCameraRestore(void);
|
void BoardCameraRestore(void);
|
||||||
void BoardCameraScissorSet(s32 x, s32 y, s32 w, s32 h);
|
void BoardCameraScissorSet(s32 x, s32 y, s32 w, s32 h);
|
||||||
|
|
@ -117,6 +126,14 @@ s32 BoardCameraCullCheck(Vec *point, float radius);
|
||||||
s32 BoardCameraMotionIsDone(void);
|
s32 BoardCameraMotionIsDone(void);
|
||||||
void BoardCameraMotionWait(void);
|
void BoardCameraMotionWait(void);
|
||||||
void BoardCameraInit(void);
|
void BoardCameraInit(void);
|
||||||
|
void BoardMGDoneFlagSet(s32 flag);
|
||||||
|
s32 BoardMGDoneFlagGet();
|
||||||
|
void BoardMGExit(void);
|
||||||
|
void BoardMGCreate(s32 arg0);
|
||||||
|
void BoardEventFlagSet(void);
|
||||||
|
void BoardEventFlagReset(void);
|
||||||
|
s32 BoardEventFlagGet(void);
|
||||||
|
void BoardMTXCalcLookAt(Mtx dest, Vec *eye, Vec *up, Vec *target);
|
||||||
float BoardArcSin(float value);
|
float BoardArcSin(float value);
|
||||||
float BoardArcCos(float value);
|
float BoardArcCos(float value);
|
||||||
void BoardRandInit(void);
|
void BoardRandInit(void);
|
||||||
|
|
@ -125,7 +142,21 @@ u32 BoardRandMod(u32 value);
|
||||||
float BoardRandFloat(void);
|
float BoardRandFloat(void);
|
||||||
float BoardVecDistXZCalc(Vec *vec1, Vec *vec2);
|
float BoardVecDistXZCalc(Vec *vec1, Vec *vec2);
|
||||||
s32 BoardVecMaxDistXZCheck(Vec *vec1, Vec *vec2, float max_dist);
|
s32 BoardVecMaxDistXZCheck(Vec *vec1, Vec *vec2, float max_dist);
|
||||||
|
void BoardDAngleCalcVec(Vec *vec1);
|
||||||
|
float BoardDAngleCalc(float value);
|
||||||
|
s32 BoardDAngleCalcRange(float *value, float min, float range);
|
||||||
s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist);
|
s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist);
|
||||||
|
void BoardFilterFadeOut(s16 len);
|
||||||
|
void BoardFilterFadeInit(s16 len, u8 max_alpha);
|
||||||
|
s32 BoardFilterFadePauseCheck(void);
|
||||||
|
s32 BoardFilterFadeCheck(void);
|
||||||
|
void BoardConfettiCreate(Vec *pos, s16 count, float range);
|
||||||
|
void BoardConfettiKill(void);
|
||||||
|
void BoardConfettiStop(void);
|
||||||
|
void BoardLast5GfxInit(void);
|
||||||
|
void BoardLast5GfxShowSet(s32 show);
|
||||||
|
void BoardTauntInit(void);
|
||||||
|
void BoardTauntKill(void);
|
||||||
s32 BoardDataDirReadAsync(s32 data_num);
|
s32 BoardDataDirReadAsync(s32 data_num);
|
||||||
void BoardDataAsyncWait(s32 status);
|
void BoardDataAsyncWait(s32 status);
|
||||||
|
|
||||||
|
|
|
||||||
58
include/game/board/model.h
Normal file
58
include/game/board/model.h
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
#ifndef _BOARD_WARP_H
|
||||||
|
#define _BOARD_WARP_H
|
||||||
|
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
|
||||||
|
typedef struct board_model_param {
|
||||||
|
s32 data_num;
|
||||||
|
struct {
|
||||||
|
u8 field04_bit0 : 2;
|
||||||
|
u8 visible : 1;
|
||||||
|
u8 link : 1;
|
||||||
|
u8 start_mot : 1;
|
||||||
|
u8 pause : 1;
|
||||||
|
};
|
||||||
|
s16 unk6;
|
||||||
|
} BoardModelParam;
|
||||||
|
|
||||||
|
void BoardModelInit(void);
|
||||||
|
void BoardModelKillAll(void);
|
||||||
|
void BoardModelDummyUpdate(void);
|
||||||
|
void BoardModelVisibilityUpdate(void);
|
||||||
|
void BoardModelHideSetAll(s32 flag);
|
||||||
|
void BoardModelAmbSetAll(float r, float g, float b);
|
||||||
|
void BoardModelCameraSetAll(u16 camera);
|
||||||
|
s16 BoardModelCreate(s32 data_num, s32 *mot_list, s32 link);
|
||||||
|
s16 BoardModelCreateCharacter(s32 character, s32 data_num, s32 *mot_list, s32 link);
|
||||||
|
s16 BoardModelCreateParam(BoardModelParam *param, Vec *pos, Vec *rot);
|
||||||
|
void BoardModelKill(s16 model);
|
||||||
|
s16 BoardModelIDGet(s16 model);
|
||||||
|
s32 fn_8006DC1C(s16 model, s32 arg1);
|
||||||
|
s32 BoardModelPassSet(s16 model, s32 pass);
|
||||||
|
s32 BoardModelAmbSet(s16 model, float r, float g, float b);
|
||||||
|
s32 BoardModelExistCheck(s16 model, s32 arg1);
|
||||||
|
s32 BoardModelExistDupe(s16 model, s32 arg1);
|
||||||
|
s32 fn_8006DDE8(s16 model, float arg1);
|
||||||
|
s32 BoardModelMotionStart(s16 model, s32 slot, u32 attr);
|
||||||
|
s32 BoardModelMotionSpeedSet(s16 model, float speed);
|
||||||
|
s32 BoardModelPosSet(s16 model, float x, float y, float z);
|
||||||
|
s32 BoardModelPosSetV(s16 model, Vec *pos);
|
||||||
|
s32 BoardModelRotSet(s16 model, float x, float y, float z);
|
||||||
|
s32 BoardModelRotSetV(s16 model, Vec *rot);
|
||||||
|
s32 BoardModelScaleSet(s16 model, float x, float y, float z);
|
||||||
|
s32 BoardModelScaleSetV(s16 model, Vec *scale);
|
||||||
|
s32 BoardModelPosGet(s16 model, Vec *dst);
|
||||||
|
s32 BoardModelRotGet(s16 model, Vec *dst);
|
||||||
|
s32 BoardModelScaleGet(s16 model, Vec *dst);
|
||||||
|
s32 BoardModelVisibilitySet(s16 model, s32 flag);
|
||||||
|
s32 BoardModelVisibilityGet(s16 model);
|
||||||
|
s32 BoardModelCameraSet(s16 model, u16 camera);
|
||||||
|
s32 BoardModelLayerSet(s16 model, u8 layer);
|
||||||
|
s32 BoardModelLayerGet(s16 model);
|
||||||
|
void BoardModelLayerSetAll(s32 layer);
|
||||||
|
s32 BoardModelHookSet(s16 model, char *name, s16 hook);
|
||||||
|
s32 BoardModelHookReset(s16 model);
|
||||||
|
s32 BoardModelHookObjReset(s16 model, char *name);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -113,10 +113,15 @@ void BoardDiceDigit2DUpdateEnable(s32);
|
||||||
void BoardPlayerMoveTo(s32, s16);
|
void BoardPlayerMoveTo(s32, s16);
|
||||||
void BoardPlayerZoomRestore(s32);
|
void BoardPlayerZoomRestore(s32);
|
||||||
void BoardRotateDiceNumbers(s32);
|
void BoardRotateDiceNumbers(s32);
|
||||||
s32 DoDebugMove(s32, s16*);
|
|
||||||
s32 DoSparkSpace(s32, s16*);
|
s32 DoSparkSpace(s32, s16*);
|
||||||
s32 ExecJunction(s32, s16*);
|
|
||||||
s32 MegaPlayerPassFunc(s32, s16);
|
s32 MegaPlayerPassFunc(s32, s16);
|
||||||
s32 BoardPlayerAnimBlendCheck(s32);
|
s32 BoardPlayerAnimBlendCheck(s32);
|
||||||
|
void BoardPlayerCoinsSet(s32 player, s32 value);
|
||||||
|
s32 BoardPlayerSizeGet(s32 player);
|
||||||
|
void BoardPlayerAutoSizeSet(s32 player, s32 value);
|
||||||
|
void BoardPlayerMotionStart(s32, s32, s32);
|
||||||
|
void BoardPlayerMotionShiftSet(s32 player, s32 arg1, float start, float end, u32 attr);
|
||||||
|
void BoardPlayerRotYSet(s32 player, float rot_y);
|
||||||
|
void BoardPlayerZoomRestore(s32 player);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
|
|
||||||
#define BOARD_SPACE_LINKMAX 4
|
#define BOARD_SPACE_LINKMAX 4
|
||||||
|
|
||||||
|
#ifndef _BOARD_SPACE_EVENT_FUNC
|
||||||
|
#define _BOARD_SPACE_EVENT_FUNC
|
||||||
typedef s32 (*BoardSpaceEventFunc)(void);
|
typedef s32 (*BoardSpaceEventFunc)(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct board_space {
|
typedef struct board_space {
|
||||||
Vec pos;
|
Vec pos;
|
||||||
|
|
@ -22,8 +25,7 @@ void BoardSpaceWalkMiniEventFuncSet(BoardSpaceEventFunc func);
|
||||||
void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func);
|
void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func);
|
||||||
s32 BoardSpaceWalkEventExec(void);
|
s32 BoardSpaceWalkEventExec(void);
|
||||||
s32 BoardSpaceWalkMiniEventExec(void);
|
s32 BoardSpaceWalkMiniEventExec(void);
|
||||||
s16 BoardSpaceCountGet(s32 layer);
|
s32 BoardSpaceCountGet(s32 layer);
|
||||||
s16 BoardSpaceCountGet(s32 layer);
|
|
||||||
BoardSpace *BoardSpaceGet(s32 layer, s32 index);
|
BoardSpace *BoardSpaceGet(s32 layer, s32 index);
|
||||||
void BoardSpaceAttrSet(s32 layer, u32 attr);
|
void BoardSpaceAttrSet(s32 layer, u32 attr);
|
||||||
void BoardSpaceAttrReset(s32 layer, u32 attr);
|
void BoardSpaceAttrReset(s32 layer, u32 attr);
|
||||||
|
|
@ -32,6 +34,7 @@ s32 BoardSpaceTypeGet(s32 layer, s32 index);
|
||||||
void BoardSpaceTypeSet(s32 layer, s32 index, s32 type);
|
void BoardSpaceTypeSet(s32 layer, s32 index, s32 type);
|
||||||
s32 BoardSpacePosGet(s32 layer, s32 index, Vec *pos);
|
s32 BoardSpacePosGet(s32 layer, s32 index, Vec *pos);
|
||||||
void BoardSpaceCornerPosGet(s32 index, s32 corner, Vec *pos);
|
void BoardSpaceCornerPosGet(s32 index, s32 corner, Vec *pos);
|
||||||
|
s32 BoardSpaceRotGet(s32 layer, s32 index, Vec *rot);
|
||||||
s32 BoardSpaceFlagSearch(s32 layer, u32 flag);
|
s32 BoardSpaceFlagSearch(s32 layer, u32 flag);
|
||||||
s32 BoardSpaceFlagPosGet(s32 layer, u32 flag, Vec *pos);
|
s32 BoardSpaceFlagPosGet(s32 layer, u32 flag, Vec *pos);
|
||||||
s32 BoardSpaceLinkFlagSearch(s32 layer, s32 index, u32 flag);
|
s32 BoardSpaceLinkFlagSearch(s32 layer, s32 index, u32 flag);
|
||||||
|
|
@ -39,7 +42,7 @@ s32 BoardSpaceLinkTypeListGet(s32 layer, s32 index, s32 type, s16 *list);
|
||||||
s32 BoardSpaceLinkTargetListGet(s32 layer, s32 target, s16 *list);
|
s32 BoardSpaceLinkTargetListGet(s32 layer, s32 target, s16 *list);
|
||||||
s32 BoardSpaceLinkTypeSearch(s32 layer, s32 target, u16 type);
|
s32 BoardSpaceLinkTypeSearch(s32 layer, s32 target, u16 type);
|
||||||
s32 BoardSpaceLinkTransformGet(s32 flag, Vec *pos, Vec *rot, Vec *scale);
|
s32 BoardSpaceLinkTransformGet(s32 flag, Vec *pos, Vec *rot, Vec *scale);
|
||||||
void BoardSpaceStarSet(s32 space);
|
void BoardSpaceHostSet(s32 space);
|
||||||
void BoardSpaceStarSetIndex(s32 index);
|
void BoardSpaceStarSetIndex(s32 index);
|
||||||
s32 BoardSpaceStarGetNext(void);
|
s32 BoardSpaceStarGetNext(void);
|
||||||
s32 BoardSpaceStarGetRandom(s32 excl_pos);
|
s32 BoardSpaceStarGetRandom(s32 excl_pos);
|
||||||
|
|
@ -48,5 +51,6 @@ s32 BoardSpaceStarGet(s32 index);
|
||||||
s32 BoardSpaceStarGetCurr(void);
|
s32 BoardSpaceStarGetCurr(void);
|
||||||
s32 BoardSpaceStarCheck(s32 index);
|
s32 BoardSpaceStarCheck(s32 index);
|
||||||
void BoardSpaceLandExec(s32 player, s32 space);
|
void BoardSpaceLandExec(s32 player, s32 space);
|
||||||
|
void BoardSpaceBlockPosSet(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
#include "game/process.h"
|
#include "game/process.h"
|
||||||
#include "game/wipe.h"
|
#include "game/wipe.h"
|
||||||
|
|
||||||
void BoardWarpExec(s32 player, s16 space);
|
void BoardWarpExec(s32 player, s32 space);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -17,8 +17,8 @@ void BoardWinCreate(s32 pos, u32 mess, s32 portrait);
|
||||||
void BoardWinInsertMesSet(u32 value, s32 index);
|
void BoardWinInsertMesSet(u32 value, s32 index);
|
||||||
void BoardWinWait(void);
|
void BoardWinWait(void);
|
||||||
void BoardWinKill(void);
|
void BoardWinKill(void);
|
||||||
void BoardWinSetAttr(s32 attr);
|
void BoardWinAttrSet(s32 attr);
|
||||||
void BoardWinResetAttr(s32 attr);
|
void BoardWinAttrReset(s32 attr);
|
||||||
void BoardWinChoiceDisable(s32 choice);
|
void BoardWinChoiceDisable(s32 choice);
|
||||||
void BoardWinKeyWait(void);
|
void BoardWinKeyWait(void);
|
||||||
int BoardWinSpeedGet(void);
|
int BoardWinSpeedGet(void);
|
||||||
|
|
|
||||||
24
include/game/esprite.h
Executable file
24
include/game/esprite.h
Executable file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef _GAME_ESPRITE_H
|
||||||
|
#define _GAME_ESPRITE_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
void espInit(void);
|
||||||
|
s16 espEntry(s32 arg0, s16 arg1, s16 arg2);
|
||||||
|
void espKill(s16 arg0);
|
||||||
|
s16 espGrpIDGet(void);
|
||||||
|
void espDispOn(s16 arg0);
|
||||||
|
void espDispOff(s16 arg0);
|
||||||
|
void espAttrSet(s16 arg0, u16 arg1);
|
||||||
|
void espAttrReset(s16 arg0, u16 arg1);
|
||||||
|
void espPosSet(s16 arg0, float arg1, float arg2);
|
||||||
|
void espScaleSet(s16 arg0, float arg1, float arg2);
|
||||||
|
void espZRotSet(s16 arg0, float arg1);
|
||||||
|
void espTPLvlSet(s16 arg0, float arg1);
|
||||||
|
void espColorSet(s16 arg0, u8 arg1, u8 arg2, u8 arg3);
|
||||||
|
void espSpeedSet(s16 arg0, float arg1);
|
||||||
|
void espBankSet(s16 arg0, s16 arg1);
|
||||||
|
void espDrawNoSet(s16 arg0, s16 arg1);
|
||||||
|
void espPriSet(s16 arg0, s16 arg1);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -46,7 +46,7 @@ typedef struct system_state {
|
||||||
/* 0x32 */ s8 unk_32;
|
/* 0x32 */ s8 unk_32;
|
||||||
/* 0x34 */ u16 mg_next;
|
/* 0x34 */ u16 mg_next;
|
||||||
/* 0x36 */ s16 mg_next_extra;
|
/* 0x36 */ s16 mg_next_extra;
|
||||||
/* 0x38 */ s16 unk_38;
|
/* 0x38 */ u16 unk_38;
|
||||||
/* 0x3A */ u8 flag[3][16];
|
/* 0x3A */ u8 flag[3][16];
|
||||||
/* 0x6A */ u8 unk_6A[0x72];
|
/* 0x6A */ u8 unk_6A[0x72];
|
||||||
} SystemState; //8018fcf8, sizeof 0xDC
|
} SystemState; //8018fcf8, sizeof 0xDC
|
||||||
|
|
@ -105,7 +105,7 @@ typedef struct player_state {
|
||||||
|
|
||||||
typedef struct game_stat {
|
typedef struct game_stat {
|
||||||
/* 0x0 */ s16 unk_00;
|
/* 0x0 */ s16 unk_00;
|
||||||
/* 0x2 */ s8 language;
|
/* 0x2 */ u8 language;
|
||||||
/* 0x3 */ u8 sound_mode;
|
/* 0x3 */ u8 sound_mode;
|
||||||
/* 0x4 */ s8 rumble;
|
/* 0x4 */ s8 rumble;
|
||||||
/* 0x6 */ u16 total_stars;
|
/* 0x6 */ u16 total_stars;
|
||||||
|
|
@ -147,4 +147,19 @@ extern PlayerState GWPlayer[4];
|
||||||
extern SystemState GWSystem;
|
extern SystemState GWSystem;
|
||||||
extern GameStat GWGameStat;
|
extern GameStat GWGameStat;
|
||||||
|
|
||||||
|
static inline s32 GWLanguageGet(void)
|
||||||
|
{
|
||||||
|
return GWGameStat.language;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline s32 GWMGTypeGet()
|
||||||
|
{
|
||||||
|
return GWSystem.mg_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline s32 GWMessSpeedGet()
|
||||||
|
{
|
||||||
|
return GWSystem.mess_speed;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,30 @@
|
||||||
#include "game/hsfman.h"
|
#include "game/hsfman.h"
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
typedef struct model_data ModelData;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ u16 unk00;
|
||||||
|
/* 0x02 */ s16 unk02;
|
||||||
|
/* 0x04 */ s16 unk04;
|
||||||
|
/* 0x06 */ char unk06[2];
|
||||||
|
/* 0x08 */ float unk08;
|
||||||
|
/* 0x0C */ float unk0C;
|
||||||
|
/* 0x10 */ float unk10;
|
||||||
|
/* 0x14 */ float unk14;
|
||||||
|
/* 0x18 */ float unk18;
|
||||||
|
/* 0x1C */ float unk1C;
|
||||||
|
/* 0x20 */ float unk20;
|
||||||
|
/* 0x24 */ float unk24;
|
||||||
|
/* 0x28 */ float unk28;
|
||||||
|
/* 0x2C */ float unk2C;
|
||||||
|
/* 0x30 */ float unk30;
|
||||||
|
/* 0x34 */ float unk34;
|
||||||
|
/* 0x38 */ float unk38;
|
||||||
|
/* 0x3C */ HsfBitmap *unk3C;
|
||||||
|
/* 0x40 */ char unk40[4];
|
||||||
|
} HsfdrawStruct01; // Size 0x44
|
||||||
|
|
||||||
void Hu3DDrawPreInit(void);
|
void Hu3DDrawPreInit(void);
|
||||||
void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2);
|
void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2);
|
||||||
s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2);
|
s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2);
|
||||||
|
|
@ -25,4 +49,13 @@ HsfObject *Hu3DObjDuplicate(HsfData *arg0, u32 arg1);
|
||||||
void Hu3DModelObjDrawInit(void);
|
void Hu3DModelObjDrawInit(void);
|
||||||
void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2);
|
void Hu3DModelObjDraw(s16 arg0, char *arg1, Mtx arg2);
|
||||||
|
|
||||||
|
extern u32 totalPolyCnt;
|
||||||
|
extern u32 totalPolyCnted;
|
||||||
|
extern u32 totalMatCnt;
|
||||||
|
extern u32 totalMatCnted;
|
||||||
|
extern u32 totalTexCnt;
|
||||||
|
extern u32 totalTexCnted;
|
||||||
|
extern u32 totalTexCacheCnt;
|
||||||
|
extern u32 totalTexCacheCnted;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
15
include/game/hsfex.h
Normal file
15
include/game/hsfex.h
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef _GAME_HSFEX_H
|
||||||
|
#define _GAME_HSFEX_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
void CamMotionEx2(s16 arg0, s16 arg1, float arg2, s16 arg3);
|
||||||
|
void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5, s16 arg6);
|
||||||
|
float InterpolateBMLine(float *arg0, float *arg1, float arg2);
|
||||||
|
void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2);
|
||||||
|
void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2);
|
||||||
|
void Hu3DMtxTransGet(Mtx arg0, Vec *arg1);
|
||||||
|
void Hu3DMtxRotGet(Mtx arg0, Vec *arg1);
|
||||||
|
void Hu3DMtxScaleGet(Mtx arg0, Vec *arg1);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -238,10 +238,12 @@ typedef struct hsf_cluster {
|
||||||
char *name[2];
|
char *name[2];
|
||||||
union {
|
union {
|
||||||
char *targetName;
|
char *targetName;
|
||||||
u32 target;
|
s32 target;
|
||||||
};
|
};
|
||||||
HsfPart *part;
|
HsfPart *part;
|
||||||
u8 unk10[132];
|
float unk10;
|
||||||
|
float unk14[1]; // unknown array size
|
||||||
|
u8 unk18[124];
|
||||||
u8 adjusted;
|
u8 adjusted;
|
||||||
u8 unk95;
|
u8 unk95;
|
||||||
u16 type;
|
u16 type;
|
||||||
|
|
@ -269,7 +271,7 @@ typedef struct hsf_object_data {
|
||||||
HsfVector3f min;
|
HsfVector3f min;
|
||||||
HsfVector3f max;
|
HsfVector3f max;
|
||||||
float baseMorph;
|
float baseMorph;
|
||||||
float *morphWeight[33];
|
float morphWeight[33];
|
||||||
} mesh;
|
} mesh;
|
||||||
struct hsf_object *replica;
|
struct hsf_object *replica;
|
||||||
};
|
};
|
||||||
|
|
@ -339,9 +341,23 @@ typedef struct hsf_bitmap_keyframe {
|
||||||
typedef struct hsf_track {
|
typedef struct hsf_track {
|
||||||
u8 type;
|
u8 type;
|
||||||
u8 start;
|
u8 start;
|
||||||
u16 target;
|
union {
|
||||||
u16 param;
|
u16 target;
|
||||||
u16 channel;
|
s16 target_s16;
|
||||||
|
};
|
||||||
|
union {
|
||||||
|
s32 unk04;
|
||||||
|
struct {
|
||||||
|
union {
|
||||||
|
s16 param;
|
||||||
|
u16 param_u16;
|
||||||
|
};
|
||||||
|
union {
|
||||||
|
u16 channel;
|
||||||
|
s16 channel_s16;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
u16 curveType;
|
u16 curveType;
|
||||||
u16 numKeyframes;
|
u16 numKeyframes;
|
||||||
union {
|
union {
|
||||||
|
|
@ -352,7 +368,7 @@ typedef struct hsf_track {
|
||||||
|
|
||||||
typedef struct hsf_motion {
|
typedef struct hsf_motion {
|
||||||
char *name;
|
char *name;
|
||||||
u32 numTracks;
|
s32 numTracks;
|
||||||
HsfTrack *track;
|
HsfTrack *track;
|
||||||
float len;
|
float len;
|
||||||
} HsfMotion;
|
} HsfMotion;
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
#ifndef _GAME_HSFMAN_H
|
#ifndef _GAME_HSFMAN_H
|
||||||
#define _GAME_HSFMAN_H
|
#define _GAME_HSFMAN_H
|
||||||
|
|
||||||
#include "math.h"
|
|
||||||
#include "game/memory.h"
|
|
||||||
#include "game/hsfanim.h"
|
#include "game/hsfanim.h"
|
||||||
#include "game/hsfformat.h"
|
#include "game/hsfformat.h"
|
||||||
#include "game/sprite.h"
|
|
||||||
#include "game/init.h"
|
|
||||||
#include "game/data.h"
|
|
||||||
#include "game/memory.h"
|
#include "game/memory.h"
|
||||||
#include "dolphin/gx/GXVert.h"
|
#include "game/data.h"
|
||||||
|
|
||||||
#define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
#define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA)))
|
||||||
|
|
||||||
typedef struct particle_data ParticleData;
|
typedef struct particle_data ParticleData;
|
||||||
|
|
||||||
|
typedef void (*ModelHookFunc)(struct model_data *, Mtx);
|
||||||
|
|
||||||
typedef struct model_data {
|
typedef struct model_data {
|
||||||
u8 unk_00;
|
u8 unk_00;
|
||||||
u8 unk_01;
|
u8 unk_01;
|
||||||
|
|
@ -41,12 +38,27 @@ typedef struct model_data {
|
||||||
u32 motion_attr;
|
u32 motion_attr;
|
||||||
Point3d unk_58;
|
Point3d unk_58;
|
||||||
f32 unk_64;
|
f32 unk_64;
|
||||||
Point3d unk_68;
|
f32 unk_68;
|
||||||
|
f32 unk_6C;
|
||||||
|
f32 unk_70;
|
||||||
f32 unk_74;
|
f32 unk_74;
|
||||||
char unk_78[0x1C];
|
f32 unk_78;
|
||||||
|
f32 unk_7C;
|
||||||
|
f32 unk_80;
|
||||||
|
f32 unk_84;
|
||||||
|
f32 unk_88;
|
||||||
|
f32 unk_8C;
|
||||||
|
f32 unk_90;
|
||||||
f32 unk_94;
|
f32 unk_94;
|
||||||
char unk_98[0x2C];
|
f32 unk_98;
|
||||||
HsfData *hsfData;
|
f32 unk_9C;
|
||||||
|
f32 unk_A0;
|
||||||
|
f32 unk_A4[4];
|
||||||
|
f32 unk_B4[4];
|
||||||
|
union {
|
||||||
|
HsfData *hsfData;
|
||||||
|
ModelHookFunc hook;
|
||||||
|
};
|
||||||
HsfData *unk_C8;
|
HsfData *unk_C8;
|
||||||
Vec pos;
|
Vec pos;
|
||||||
Vec rot;
|
Vec rot;
|
||||||
|
|
@ -97,11 +109,6 @@ typedef struct shadow_data {
|
||||||
Mtx unk_38;
|
Mtx unk_38;
|
||||||
Mtx unk_68;
|
Mtx unk_68;
|
||||||
} ShadowData; // sizeof 0x98
|
} ShadowData; // sizeof 0x98
|
||||||
typedef struct motion_data {
|
|
||||||
s16 unk_00;
|
|
||||||
s16 unk_02;
|
|
||||||
HsfData *unk_04;
|
|
||||||
} MotionData;
|
|
||||||
typedef struct light_data {
|
typedef struct light_data {
|
||||||
s16 unk_00;
|
s16 unk_00;
|
||||||
s16 unk_02;
|
s16 unk_02;
|
||||||
|
|
@ -114,49 +121,7 @@ typedef struct light_data {
|
||||||
GXColor color;
|
GXColor color;
|
||||||
} LightData;
|
} LightData;
|
||||||
|
|
||||||
extern void ClusterMotionExec(ModelData*); /* extern */
|
|
||||||
extern void ClusterProc(ModelData*); /* extern */
|
|
||||||
extern void EnvelopeProc(HsfData*); /* extern */
|
|
||||||
extern void GXWaitDrawDone(); /* extern */
|
extern void GXWaitDrawDone(); /* extern */
|
||||||
extern void Hu3DAnimExec(); /* extern */
|
|
||||||
extern void Hu3DCameraMotionExec(s16); /* extern */
|
|
||||||
extern void Hu3DDraw(ModelData*, Mtx, Vec*); /* extern */
|
|
||||||
extern void Hu3DDrawPost(); /* extern */
|
|
||||||
extern void Hu3DDrawPreInit(); /* extern */
|
|
||||||
extern void Hu3DMotionNext(s16); /* extern */
|
|
||||||
extern void Hu3DShadowExec(); /* extern */
|
|
||||||
extern void Hu3DSubMotionExec(s16); /* extern */
|
|
||||||
extern void HuPerfBegin(s32); /* extern */
|
|
||||||
extern void HuPerfEnd(s32); /* extern */
|
|
||||||
extern void HuSprBegin(void); /* extern */
|
|
||||||
extern void HuSprDispInit(void); /* extern */
|
|
||||||
extern void HuSprExec(s16); /* extern */
|
|
||||||
extern void HuSprFinish(void); /* extern */
|
|
||||||
extern void InitVtxParm(HsfData*); /* extern */
|
|
||||||
extern void ShapeProc(HsfData*); /* extern */
|
|
||||||
extern void mtxRot(Mtx, f32, f32, f32); /* extern */
|
|
||||||
extern void mtxScaleCat(Mtx, f32, f32, f32); /* extern */
|
|
||||||
extern void mtxTransCat(Mtx, f32, f32, f32);
|
|
||||||
extern void Hu3DAnimInit(void);
|
|
||||||
extern void Hu3DMotionInit(void);
|
|
||||||
extern void Hu3DParManInit(void);
|
|
||||||
extern void Hu3DMotionClusterSet(s16, s16); /* extern */
|
|
||||||
extern void Hu3DMotionExec(s16, s16, f32, s32);
|
|
||||||
extern f32 Hu3DMotionMaxTimeGet(s16); /* extern */
|
|
||||||
extern s16 Hu3DMotionModelCreate(s16); /* extern */
|
|
||||||
extern void Hu3DMotionShapeSet(s16, s16); /* extern */
|
|
||||||
extern void MakeDisplayList(s16, HsfData*); /* extern */
|
|
||||||
extern void ClusterAdjustObject(HsfData*, HsfData*); /* extern */
|
|
||||||
extern HsfObject* Hu3DObjDuplicate(HsfData*, u32); /* extern */
|
|
||||||
extern void Hu3DAnimModelKill(s16); /* extern */
|
|
||||||
extern void Hu3DGLightKill(s16); /* extern */
|
|
||||||
extern void Hu3DLLightKill(s16, s16); /* extern */
|
|
||||||
extern s32 Hu3DMotionKill(s16);
|
|
||||||
extern void Hu3DModelKill(s16);
|
|
||||||
extern void Hu3DParManAllKill(void);
|
|
||||||
extern f32 Hu3DMotionMotionMaxTimeGet(s16);
|
|
||||||
extern void Hu3DMotionStartEndSet(s16, f32, f32);
|
|
||||||
extern void Hu3DMotionTimeSet(s16, f32);
|
|
||||||
extern void GXInitSpecularDir(GXLightObj*, f32, f32, f32);
|
extern void GXInitSpecularDir(GXLightObj*, f32, f32, f32);
|
||||||
|
|
||||||
void Hu3DInit(void);
|
void Hu3DInit(void);
|
||||||
|
|
@ -169,14 +134,14 @@ void Hu3DPauseSet(s32);
|
||||||
void Hu3DNoSyncSet(s32);
|
void Hu3DNoSyncSet(s32);
|
||||||
s16 Hu3DModelCreate(void *);
|
s16 Hu3DModelCreate(void *);
|
||||||
s16 Hu3DModelLink(s16);
|
s16 Hu3DModelLink(s16);
|
||||||
s16 Hu3DHookFuncCreate(HsfData*);
|
s16 Hu3DHookFuncCreate(ModelHookFunc);
|
||||||
void Hu3DModelAllKill(void);
|
void Hu3DModelAllKill(void);
|
||||||
void Hu3DModelPosSet(s16, f32, f32, f32);
|
void Hu3DModelPosSet(s16, f32, f32, f32);
|
||||||
void Hu3DModelPosSetV(s16, Vec);
|
void Hu3DModelPosSetV(s16, Vec *);
|
||||||
void Hu3DModelRotSet(s16, f32, f32, f32);
|
void Hu3DModelRotSet(s16, f32, f32, f32);
|
||||||
void Hu3DModelRotSetV(s16, Vec);
|
void Hu3DModelRotSetV(s16, Vec *);
|
||||||
void Hu3DModelScaleSet(s16, f32, f32, f32);
|
void Hu3DModelScaleSet(s16, f32, f32, f32);
|
||||||
void Hu3DModelScaleSetV(s16, Vec);
|
void Hu3DModelScaleSetV(s16, Vec *);
|
||||||
void Hu3DModelAttrSet(s16, u32);
|
void Hu3DModelAttrSet(s16, u32);
|
||||||
void Hu3DModelAttrReset(s16, u32);
|
void Hu3DModelAttrReset(s16, u32);
|
||||||
u32 Hu3DModelAttrGet(s16);
|
u32 Hu3DModelAttrGet(s16);
|
||||||
|
|
@ -278,13 +243,4 @@ extern s16 Hu3DCameraNo;
|
||||||
extern s16 Hu3DCameraBit;
|
extern s16 Hu3DCameraBit;
|
||||||
extern s16 Hu3DPauseF;
|
extern s16 Hu3DPauseF;
|
||||||
|
|
||||||
extern MotionData Hu3DMotion[0x100];
|
|
||||||
extern u32 totalMatCnt;
|
|
||||||
extern u32 totalMatCnted;
|
|
||||||
extern u32 totalPolyCnt;
|
|
||||||
extern u32 totalPolyCnted;
|
|
||||||
extern u32 totalTexCacheCnt;
|
|
||||||
extern u32 totalTexCacheCnted;
|
|
||||||
extern u32 totalTexCnt;
|
|
||||||
extern u32 totalTexCnted;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
76
include/game/hsfmotion.h
Normal file
76
include/game/hsfmotion.h
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
#ifndef _GAME_HSFMOTION_H
|
||||||
|
#define _GAME_HSFMOTION_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "game/hsfformat.h"
|
||||||
|
|
||||||
|
typedef struct motion_data {
|
||||||
|
s16 unk_00;
|
||||||
|
s16 unk_02;
|
||||||
|
HsfData *unk_04;
|
||||||
|
} MotionData;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ float unk00;
|
||||||
|
/* 0x04 */ HsfBitmap *unk04;
|
||||||
|
} UnknownHsfMotionStruct01; // Size 8
|
||||||
|
|
||||||
|
void Hu3DMotionInit(void);
|
||||||
|
s16 Hu3DMotionCreate(void *arg0);
|
||||||
|
s16 Hu3DMotionModelCreate(s16 arg0);
|
||||||
|
s32 Hu3DMotionKill(s16 arg0);
|
||||||
|
void Hu3DMotionAllKill(void);
|
||||||
|
void Hu3DMotionSet(s16 arg0, s16 arg1);
|
||||||
|
void Hu3DMotionOverlaySet(s16 arg0, s16 arg1);
|
||||||
|
void Hu3DMotionOverlayReset(s16 arg0);
|
||||||
|
float Hu3DMotionOverlayTimeGet(s16 arg0);
|
||||||
|
void Hu3DMotionOverlayTimeSet(s16 arg0, float arg1);
|
||||||
|
void Hu3DMotionOverlaySpeedSet(s16 arg0, float arg1);
|
||||||
|
void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4);
|
||||||
|
void Hu3DMotionShapeSet(s16 arg0, s16 arg1);
|
||||||
|
s16 Hu3DMotionShapeIDGet(s16 arg0);
|
||||||
|
void Hu3DMotionShapeSpeedSet(s16 arg0, float arg1);
|
||||||
|
void Hu3DMotionShapeTimeSet(s16 arg0, float arg1);
|
||||||
|
float Hu3DMotionShapeMaxTimeGet(s16 arg0);
|
||||||
|
void Hu3DMotionShapeStartEndSet(s16 arg0, float arg1, float arg2);
|
||||||
|
s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1);
|
||||||
|
s16 Hu3DMotionClusterNoSet(s16 arg0, s16 arg1, s16 arg2);
|
||||||
|
void Hu3DMotionShapeReset(s16 arg0);
|
||||||
|
void Hu3DMotionClusterReset(s16 arg0, s16 arg1);
|
||||||
|
s16 Hu3DMotionIDGet(s16 arg0);
|
||||||
|
s16 Hu3DMotionShiftIDGet(s16 arg0);
|
||||||
|
void Hu3DMotionTimeSet(s16 arg0, float arg1);
|
||||||
|
float Hu3DMotionTimeGet(s16 arg0);
|
||||||
|
float Hu3DMotionShiftTimeGet(s16 arg0);
|
||||||
|
float Hu3DMotionMaxTimeGet(s16 arg0);
|
||||||
|
float Hu3DMotionShiftMaxTimeGet(s16 arg0);
|
||||||
|
void Hu3DMotionShiftStartEndSet(s16 arg0, float arg1, float arg2);
|
||||||
|
float Hu3DMotionMotionMaxTimeGet(s16 arg0);
|
||||||
|
void Hu3DMotionStartEndSet(s16 arg0, float arg1, float arg2);
|
||||||
|
s32 Hu3DMotionEndCheck(s16 arg0);
|
||||||
|
void Hu3DMotionSpeedSet(s16 arg0, float arg1);
|
||||||
|
void Hu3DMotionShiftSpeedSet(s16 arg0, float arg1);
|
||||||
|
void Hu3DMotionNoMotSet(s16 arg0, char *arg1, u32 arg2);
|
||||||
|
void Hu3DMotionNoMotReset(s16 arg0, char *arg1, u32 arg2);
|
||||||
|
void Hu3DMotionForceSet(s16 arg0, char *arg1, u32 arg2, float arg3);
|
||||||
|
void Hu3DMotionNext(s16 arg0);
|
||||||
|
void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3);
|
||||||
|
void Hu3DCameraMotionExec(s16 arg0);
|
||||||
|
void Hu3DSubMotionExec(s16 arg0);
|
||||||
|
float *GetObjTRXPtr(HsfObject *arg0, u16 arg1);
|
||||||
|
void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2);
|
||||||
|
void SetObjAttrMotion(s16 arg0, HsfTrack *arg1, float arg2);
|
||||||
|
void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2);
|
||||||
|
void SetObjLightMotion(s16 arg0, HsfTrack *arg1, float arg2);
|
||||||
|
float GetCurve(HsfTrack *arg0, float arg1);
|
||||||
|
float GetConstant(s32 arg0, float *arg1, float arg2);
|
||||||
|
float GetLinear(s32 arg0, float arg1[][2], float arg2);
|
||||||
|
float GetBezier(s32 arg0, HsfTrack *arg1, float arg2);
|
||||||
|
HsfBitmap *GetBitMap(s32 arg0, UnknownHsfMotionStruct01 *arg1, float arg2);
|
||||||
|
s16 Hu3DJointMotion(s16 arg0, void *arg1);
|
||||||
|
void JointModel_Motion(s16 arg0, s16 arg1);
|
||||||
|
void Hu3DMotionCalc(s16 arg0);
|
||||||
|
|
||||||
|
extern MotionData Hu3DMotion[256];
|
||||||
|
|
||||||
|
#endif
|
||||||
19
include/game/jmp.h
Executable file
19
include/game/jmp.h
Executable file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#ifndef _GAME_JMP_H
|
||||||
|
#define _GAME_JMP_H
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
typedef struct jump_buf {
|
||||||
|
u32 lr;
|
||||||
|
u32 cr;
|
||||||
|
u32 sp;
|
||||||
|
u32 r2;
|
||||||
|
u32 pad;
|
||||||
|
u32 regs[19];
|
||||||
|
double flt_regs[19];
|
||||||
|
} jmp_buf;
|
||||||
|
|
||||||
|
int gcsetjmp(jmp_buf *jump);
|
||||||
|
int gclongjmp(jmp_buf *jump, int status);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -54,7 +54,7 @@ void msmMusStop(s32 arg0, s32 arg1);
|
||||||
s32 msmMusPlay(s32 arg0, s32 arg1);
|
s32 msmMusPlay(s32 arg0, s32 arg1);
|
||||||
void msmSeDelListener(void);
|
void msmSeDelListener(void);
|
||||||
void msmSeUpdataListener(s32 arg0, s32 arg1);
|
void msmSeUpdataListener(s32 arg0, s32 arg1);
|
||||||
void msmSeSetListener(s32 arg0, s32 arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4);
|
void msmSeSetListener(Vec* arg0, Vec* arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4);
|
||||||
s32 msmSeGetEntryID(s32 arg0, void *arg1);
|
s32 msmSeGetEntryID(s32 arg0, void *arg1);
|
||||||
s32 msmSeGetNumPlay(s32 arg0);
|
s32 msmSeGetNumPlay(s32 arg0);
|
||||||
s32 msmSeGetStatus(s32 arg0);
|
s32 msmSeGetStatus(s32 arg0);
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,9 @@ typedef enum {
|
||||||
#define OM_STAT_NOPAUSE 0x20
|
#define OM_STAT_NOPAUSE 0x20
|
||||||
#define OM_STAT_MODEL_PAUSED 0x100
|
#define OM_STAT_MODEL_PAUSED 0x100
|
||||||
|
|
||||||
|
|
||||||
|
#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0])))
|
||||||
|
|
||||||
typedef void (*omObjFunc)(struct om_obj_data *);
|
typedef void (*omObjFunc)(struct om_obj_data *);
|
||||||
|
|
||||||
typedef struct om_ovl_his_data {
|
typedef struct om_ovl_his_data {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#ifndef _GAME_PROCESS_H
|
#ifndef _GAME_PROCESS_H
|
||||||
#define _GAME_PROCESS_H
|
#define _GAME_PROCESS_H
|
||||||
|
|
||||||
|
#include "game/jmp.h"
|
||||||
#include "dolphin/types.h"
|
#include "dolphin/types.h"
|
||||||
|
|
||||||
#define PROCESS_STAT_PAUSE 0x1
|
#define PROCESS_STAT_PAUSE 0x1
|
||||||
|
|
@ -8,16 +9,6 @@
|
||||||
#define PROCESS_STAT_PAUSE_EN 0x4
|
#define PROCESS_STAT_PAUSE_EN 0x4
|
||||||
#define PROCESS_STAT_UPAUSE_EN 0x8
|
#define PROCESS_STAT_UPAUSE_EN 0x8
|
||||||
|
|
||||||
typedef struct jump_buf {
|
|
||||||
u32 lr;
|
|
||||||
u32 cr;
|
|
||||||
u32 sp;
|
|
||||||
u32 r2;
|
|
||||||
u32 pad;
|
|
||||||
u32 regs[19];
|
|
||||||
double flt_regs[19];
|
|
||||||
} jmp_buf;
|
|
||||||
|
|
||||||
typedef struct process {
|
typedef struct process {
|
||||||
struct process *next;
|
struct process *next;
|
||||||
struct process *prev;
|
struct process *prev;
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ s16 HuTHP3DCreate(char *path, s16 loop);
|
||||||
void HuTHPStop(void);
|
void HuTHPStop(void);
|
||||||
void HuTHPClose(void);
|
void HuTHPClose(void);
|
||||||
void HuTHPRestart(void);
|
void HuTHPRestart(void);
|
||||||
int HuTHPEndCheck(void);
|
BOOL HuTHPEndCheck(void);
|
||||||
int HuTHPFrameGet(void);
|
s32 HuTHPFrameGet(void);
|
||||||
int HuTHPTotalFrameGet(void);
|
s32 HuTHPTotalFrameGet(void);
|
||||||
void HuTHPSetVolume(int left, int right);
|
void HuTHPSetVolume(s32 left, s32 right);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -73,6 +73,7 @@ _MATH_INLINE float sinf(float x) { return (float)sin((double)x); }
|
||||||
_MATH_INLINE float cosf(float x) { return (float)cos((double)x); }
|
_MATH_INLINE float cosf(float x) { return (float)cos((double)x); }
|
||||||
_MATH_INLINE float atan2f(float y, float x) { return (float)atan2((double)y, (double)x); }
|
_MATH_INLINE float atan2f(float y, float x) { return (float)atan2((double)y, (double)x); }
|
||||||
_MATH_INLINE float atanf(float x) { return (float)atan((double)x); }
|
_MATH_INLINE float atanf(float x) { return (float)atan((double)x); }
|
||||||
|
_MATH_INLINE float asinf(float x) { return (float)asin((double)x); }
|
||||||
|
|
||||||
_MATH_INLINE float fmodf(float x, float m) { return (float)fmod((double)x, (double)m); }
|
_MATH_INLINE float fmodf(float x, float m) { return (float)fmod((double)x, (double)m); }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,28 +3,23 @@
|
||||||
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
void Hu3D2Dto3D(Vec*, s32, Vec*);
|
|
||||||
void HuAudFadeOut(s32 arg0);
|
|
||||||
|
|
||||||
void Hu3DModelPosSet(s16 index, float x, float y, float z);
|
|
||||||
void Hu3DModelRotSet(s16 index, float x, float y, float z);
|
|
||||||
void Hu3DModelScaleSet(s16 index, float x, float y, float z);
|
|
||||||
|
|
||||||
void espInit(void);
|
|
||||||
void espScaleSet(s16, f32, f32);
|
|
||||||
s16 espEntry(s32, s32, s32);
|
|
||||||
void espDispOff(s16);
|
|
||||||
void espKill(s16);
|
|
||||||
void espDispOn(s16);
|
|
||||||
void espPosSet(s16, f32, f32);
|
|
||||||
|
|
||||||
void HuAudFXListnerKill(void);
|
|
||||||
void HuAudDllSndGrpSet(u16 ovl);
|
|
||||||
void HuAudVoiceInit(s16 ovl);
|
|
||||||
|
|
||||||
void MGSeqKillAll(void);
|
void MGSeqKillAll(void);
|
||||||
|
|
||||||
void MGSeqPracticeStart(void);
|
void MGSeqPracticeStart(void);
|
||||||
void fn_8004D6F4(s16 arg);
|
void CharMotionClose(s16 character);
|
||||||
|
void CharModelClose(s16 character);
|
||||||
|
void CharModelKill(s16 character);
|
||||||
|
s16 CharModelCreate(s16 character, s16 lod);
|
||||||
|
s16 CharMotionCreate(s16 character, s32 data_num);
|
||||||
|
void CharModelMotionSet(s16 character, s16 motion);
|
||||||
|
float CharModelMotionMaxTimeGet(s16 character);
|
||||||
|
float CharModelMotionTimeGet(s16 character);
|
||||||
|
void CharModelMotionShiftSet(s16 model, s16 motion, float time, float shift_time, u32 attr);
|
||||||
|
void CharModelMotionTimeSet(s16 character, float time);
|
||||||
|
void CharModelMotionSpeedSet(s16 character, float speed);
|
||||||
|
void CharMotionKill(s16 character, s32 motion);
|
||||||
|
void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag);
|
||||||
|
|
||||||
|
s32 CharModelMotionEndCheck(s16 character);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "common.h"
|
#include "game/gamework_data.h"
|
||||||
#include "game/process.h"
|
#include "game/process.h"
|
||||||
#include "game/data.h"
|
#include "game/data.h"
|
||||||
#include "game/sprite.h"
|
#include "game/sprite.h"
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
extern int SystemInitF;
|
extern int SystemInitF;
|
||||||
|
|
||||||
static Process *objman;
|
static Process *objman[2];
|
||||||
Vec lbl_1_bss_3C[2];
|
Vec lbl_1_bss_3C[2];
|
||||||
Vec lbl_1_bss_24[2];
|
Vec lbl_1_bss_24[2];
|
||||||
float lbl_1_bss_1C[2];
|
float lbl_1_bss_1C[2];
|
||||||
|
|
@ -42,11 +42,13 @@ static BOOL TitleProc(void);
|
||||||
|
|
||||||
void *logoReadNintendo(void);
|
void *logoReadNintendo(void);
|
||||||
|
|
||||||
|
#define M_PI 3.141592653589793
|
||||||
|
|
||||||
void ModuleProlog(void)
|
void ModuleProlog(void)
|
||||||
{
|
{
|
||||||
omOvlHisData *history;
|
omOvlHisData *history;
|
||||||
OSReport("******* Boot ObjectSetup *********\n");
|
OSReport("******* Boot ObjectSetup *********\n");
|
||||||
objman = omInitObjMan(50, 8192);
|
objman[0] = omInitObjMan(50, 8192);
|
||||||
lbl_1_bss_3C[0].x = -67;
|
lbl_1_bss_3C[0].x = -67;
|
||||||
lbl_1_bss_3C[0].y = 40;
|
lbl_1_bss_3C[0].y = 40;
|
||||||
lbl_1_bss_3C[0].z = 0;
|
lbl_1_bss_3C[0].z = 0;
|
||||||
|
|
@ -384,9 +386,62 @@ void fn_1_1178(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_152C(void)
|
//NON_MATCHING, only one in file
|
||||||
{
|
void fn_1_152C(void) {
|
||||||
|
Point3d temp_f0;
|
||||||
|
Point3d temp_f0_4;
|
||||||
|
Point3d temp_f0_7;
|
||||||
|
Point3d sp8;
|
||||||
|
|
||||||
|
f32 temp_f31;
|
||||||
|
s32 var_r30;
|
||||||
|
s8 temp_r31;
|
||||||
|
|
||||||
|
if ((HuPadBtnDown[0] & 0x800)) {
|
||||||
|
if (lbl_1_bss_0 != 0) {
|
||||||
|
var_r30 = 0;
|
||||||
|
} else {
|
||||||
|
var_r30 = 1;
|
||||||
|
}
|
||||||
|
lbl_1_bss_0 = var_r30;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_0 != 0) {
|
||||||
|
lbl_1_bss_3C->y += 0.1f * HuPadStkX[0];
|
||||||
|
lbl_1_bss_3C->x += 0.1f * HuPadStkY[0];
|
||||||
|
*lbl_1_bss_1C += HuPadTrigL[0] / 2;
|
||||||
|
*lbl_1_bss_1C -= HuPadTrigR[0] / 2;
|
||||||
|
if (*lbl_1_bss_1C < 100.0f) {
|
||||||
|
*lbl_1_bss_1C = 100.0f;
|
||||||
|
}
|
||||||
|
temp_f0.x = lbl_1_bss_24->x + (*lbl_1_bss_1C * (sin((M_PI * lbl_1_bss_3C->y) / 180.0) * cos((M_PI * lbl_1_bss_3C->x) / 180.0)));
|
||||||
|
temp_f0.y = (lbl_1_bss_24->y + (*lbl_1_bss_1C * -sin((M_PI * lbl_1_bss_3C->x) / 180.0)));
|
||||||
|
temp_f0.z = (lbl_1_bss_24->z + (*lbl_1_bss_1C * (cos((M_PI * lbl_1_bss_3C->y) / 180.0) * cos((M_PI * lbl_1_bss_3C->x) / 180.0))));
|
||||||
|
temp_f0_4.x = lbl_1_bss_24->x - temp_f0.x;
|
||||||
|
temp_f0_4.y = lbl_1_bss_24->y - temp_f0.y;
|
||||||
|
temp_f0_4.z = lbl_1_bss_24->z - temp_f0.z;
|
||||||
|
temp_f0_7.x = (sin((M_PI * lbl_1_bss_3C->y) / 180.0) * sin((M_PI * lbl_1_bss_3C->x) / 180.0));
|
||||||
|
temp_f0_7.y = cos((M_PI * lbl_1_bss_3C->x) / 180.0);
|
||||||
|
temp_f0_7.z = (cos((M_PI * lbl_1_bss_3C->y) / 180.0) * sin((M_PI * lbl_1_bss_3C->x) / 180.0));
|
||||||
|
temp_f31 = lbl_1_bss_3C->z;
|
||||||
|
sp8.x = ((temp_f0_7.x * ((temp_f0_4.x * temp_f0_4.x) + ((1.0f - (temp_f0_4.x * temp_f0_4.x)) * cos((M_PI * temp_f31) / 180.0)))) + temp_f0_7.y * (((temp_f0_4.x * temp_f0_4.y) * (1.0 - cos((M_PI * temp_f31) / 180.0))) - temp_f0_4.z * sin((M_PI * temp_f31) / 180.0)) + temp_f0_7.z * (((temp_f0_4.x * temp_f0_4.z) * (1.0 - cos((M_PI * temp_f31) / 180.0))) + temp_f0_4.y * sin((M_PI * temp_f31) / 180.0)));
|
||||||
|
sp8.y = ((temp_f0_7.y * ((temp_f0_4.y * temp_f0_4.y) + ((1.0f - (temp_f0_4.y * temp_f0_4.y)) * cos((M_PI * temp_f31) / 180.0)))) + temp_f0_7.x * (((temp_f0_4.x * temp_f0_4.y) * (1.0 - cos((M_PI * temp_f31) / 180.0))) + temp_f0_4.z * sin((M_PI * temp_f31) / 180.0)) + temp_f0_7.z * (((temp_f0_4.y * temp_f0_4.z) * (1.0 - cos((M_PI * temp_f31) / 180.0))) - temp_f0_4.x * sin((M_PI * temp_f31) / 180.0)));
|
||||||
|
sp8.z = ((temp_f0_7.z * (temp_f0_4.z * temp_f0_4.z + ((1.0f - (temp_f0_4.z * temp_f0_4.z)) * cos((M_PI * temp_f31) / 180.0)))) + (temp_f0_7.x * (((temp_f0_4.x * temp_f0_4.z) * (1.0 - cos((M_PI * temp_f31) / 180.0))) - temp_f0_4.y * sin((M_PI * temp_f31) / 180.0))) + temp_f0_7.y * (((temp_f0_4.y * temp_f0_4.z) * (1.0 - cos((M_PI * temp_f31) / 180.0))) + temp_f0_4.x * sin((M_PI * temp_f31) / 180.0)));
|
||||||
|
PSVECCrossProduct(&temp_f0_7, &temp_f0_4, &temp_f0_4);
|
||||||
|
PSVECNormalize(&temp_f0_4, &temp_f0_4);
|
||||||
|
temp_r31 = (HuPadSubStkX[0] & 0xF8);
|
||||||
|
if (temp_r31 != 0) {
|
||||||
|
lbl_1_bss_24->x += 0.05f * (temp_f0_4.x * temp_r31);
|
||||||
|
lbl_1_bss_24->y += 0.05f * (temp_f0_4.y * temp_r31);
|
||||||
|
lbl_1_bss_24->z += 0.05f * (temp_f0_4.z * temp_r31);
|
||||||
|
}
|
||||||
|
PSVECNormalize(&sp8, &temp_f0_4);
|
||||||
|
temp_r31 = -(HuPadSubStkY[0] & 0xF8);
|
||||||
|
if (temp_r31 != 0) {
|
||||||
|
lbl_1_bss_24->x += 0.05f * (temp_f0_4.x * temp_r31);
|
||||||
|
lbl_1_bss_24->y += 0.05f * (temp_f0_4.y * temp_r31);
|
||||||
|
lbl_1_bss_24->z += 0.05f * (temp_f0_4.z * temp_r31);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TitleInit(void)
|
static void TitleInit(void)
|
||||||
|
|
@ -486,5 +541,6 @@ static BOOL TitleProc(void)
|
||||||
HuSprAttrSet(titleGroup, 1, SPRITE_ATTR_HIDDEN);
|
HuSprAttrSet(titleGroup, 1, SPRITE_ATTR_HIDDEN);
|
||||||
HuSprAttrSet(titleGroup, 2, SPRITE_ATTR_HIDDEN);
|
HuSprAttrSet(titleGroup, 2, SPRITE_ATTR_HIDDEN);
|
||||||
HuSprAttrSet(titleGroup, 3, SPRITE_ATTR_HIDDEN);
|
HuSprAttrSet(titleGroup, 3, SPRITE_ATTR_HIDDEN);
|
||||||
|
fn_1_152C();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include "common.h"
|
#include "game/audio.h"
|
||||||
#include "game/object.h"
|
#include "game/object.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
#include "game/printfunc.h"
|
#include "game/printfunc.h"
|
||||||
#include "game/pad.h"
|
#include "game/pad.h"
|
||||||
#include "game/wipe.h"
|
#include "game/wipe.h"
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
#include "common.h"
|
|
||||||
#include "dolphin.h"
|
|
||||||
#include "REL/executor.h"
|
|
||||||
#include "game/process.h"
|
|
||||||
#include "game/data.h"
|
|
||||||
|
|
||||||
//DATA file1
|
|
||||||
s16 lbl_1_data_280 = -1;
|
|
||||||
s16 lbl_1_data_282 = -1;
|
|
||||||
s16 lbl_1_data_284 = -1;
|
|
||||||
s16 lbl_1_data_286 = -1;
|
|
||||||
s32 lbl_1_data_288 = -1;
|
|
||||||
|
|
||||||
//char lbl_1_data_28C[] = "%d";
|
|
||||||
|
|
||||||
//shouldn't use MAKE_DATA_NUM
|
|
||||||
s32 lbl_1_data_290[] = {
|
|
||||||
MAKE_DATA_NUM(0x005F, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x001A, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x006D, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x008A, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x0085, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x0011, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x000D, 0x0062),
|
|
||||||
MAKE_DATA_NUM(0x0081, 0x0062),
|
|
||||||
};
|
|
||||||
|
|
||||||
//shouldn't use MAKE_DATA_NUM
|
|
||||||
s32 lbl_1_data_2B0[] = {
|
|
||||||
MAKE_DATA_NUM(0x005F, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x001A, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x006D, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x008A, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x0085, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x0011, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x000D, 0x0033),
|
|
||||||
MAKE_DATA_NUM(0x0081, 0x0033),
|
|
||||||
};
|
|
||||||
|
|
||||||
s32 lbl_1_data_2D0[] = {
|
|
||||||
0x125, 0x165, 0x1A5, 0x1E5, 0x225, 0x265, 0x2A5, 0x2E5
|
|
||||||
};
|
|
||||||
|
|
||||||
s32 lbl_1_data_2F0[] = {
|
|
||||||
0x12E, 0x16E, 0x1AE, 0x1EE, 0x22E, 0x26E, 0x2AE, 0x2EE
|
|
||||||
};
|
|
||||||
|
|
||||||
s16 lbl_1_data_310 = -1;
|
|
||||||
s16 lbl_1_data_312 = -1;
|
|
||||||
s16 lbl_1_data_314 = -1;
|
|
||||||
s16 lbl_1_data_316 = -1;
|
|
||||||
|
|
||||||
|
|
||||||
s32 lbl_1_data_318[] = {
|
|
||||||
MAKE_DATA_NUM(0x0077, 0x0016),
|
|
||||||
MAKE_DATA_NUM(0x0077, 0x0017),
|
|
||||||
MAKE_DATA_NUM(0x0077, 0x0018),
|
|
||||||
MAKE_DATA_NUM(0x0077, 0x0019),
|
|
||||||
MAKE_DATA_NUM(0x0077, 0x001A),
|
|
||||||
DATA_NUM_LISTEND
|
|
||||||
};
|
|
||||||
|
|
||||||
char lbl_1_data_330[] = "itemhook_oya";
|
|
||||||
char lbl_1_data_33D[] = "jyanA";
|
|
||||||
char lbl_1_data_343[] = "jyanB";
|
|
||||||
|
|
||||||
char* lbl_1_data_34C[] = {
|
|
||||||
&lbl_1_data_33D, &lbl_1_data_343
|
|
||||||
};
|
|
||||||
|
|
||||||
char lbl_1_data_354[] = "coin";
|
|
||||||
|
|
||||||
char* lbl_1_data_35C[] = {
|
|
||||||
&lbl_1_data_33D, &lbl_1_data_343
|
|
||||||
};
|
|
||||||
|
|
@ -1,38 +1,52 @@
|
||||||
#include "common.h"
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
#include "REL/executor.h"
|
#include "REL/executor.h"
|
||||||
#include "game/process.h"
|
#include "game/process.h"
|
||||||
#include "game/data.h"
|
#include "game/data.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "REL/w03Dll.h"
|
||||||
|
#include "game/board/space.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
|
#include "math.h"
|
||||||
|
#include "board_unsplit.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
|
||||||
|
void BoardModelPosSet(s16, f32, f32, f32);
|
||||||
|
s32 BoardModelMotionStart(s16, s32, s32);
|
||||||
|
|
||||||
void fn_8005B150(void*, void*);
|
void fn_8005B150(void*, void*);
|
||||||
void fn_1_740(void);
|
void fn_1_740(void);
|
||||||
void fn_1_E0(void);
|
void fn_1_E0(void);
|
||||||
|
void fn_1_2930(void);
|
||||||
|
void fn_1_884(void);
|
||||||
|
void fn_1_8F0(void);
|
||||||
|
s32 fn_1_910(void);
|
||||||
|
s32 fn_1_A74(void);
|
||||||
|
void fn_1_AF8(void);
|
||||||
|
void fn_1_DEC(void);
|
||||||
|
void fn_1_10B0(void);
|
||||||
|
s32 fn_1_12C8(void);
|
||||||
|
void fn_8006DDE8(s16, f32);
|
||||||
|
void fn_1_10E4(omObjData* arg0);
|
||||||
|
extern Process *boardObjMan;
|
||||||
typedef void (*VoidFunc)(void);
|
typedef void (*VoidFunc)(void);
|
||||||
extern const VoidFunc _ctors[];
|
extern const VoidFunc _ctors[];
|
||||||
extern const VoidFunc _dtors[];
|
extern const VoidFunc _dtors[];
|
||||||
|
|
||||||
typedef struct w03StructUnk0 {
|
|
||||||
/* 0x00 */ Vec unk_00;
|
|
||||||
/* 0x0C */ Vec unk_0C;
|
|
||||||
/* 0x18 */ Vec unk_18;
|
|
||||||
/* 0x24 */ s32 datanum;
|
|
||||||
} w03StructUnk0;
|
|
||||||
|
|
||||||
typedef struct w03State {
|
f32 BoardModelMotionTimeGet(s16);
|
||||||
s8 unk0;
|
s16 BoardModelCreate(s32, void*, s32);
|
||||||
u8 unk1;
|
void BoardModelKill(s16);
|
||||||
u8 unk2;
|
void BoardModelMotionStartEndSet(s16, s32, s32);
|
||||||
s8 unk3;
|
void Hu3DFogSet(f32, f32, u8, u8, u8);
|
||||||
u16 unk4;
|
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
|
||||||
u16 unk6;
|
u8 WipeStatGet(void);
|
||||||
s16 unk8;
|
|
||||||
} w03State;
|
|
||||||
|
|
||||||
//DATA
|
//DATA
|
||||||
w03StructUnk0 lbl_1_data_0[] = {
|
w03StructUnk0 lbl_1_data_0[] = {
|
||||||
{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0004)},
|
{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0004)},
|
||||||
{{145.099f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0005)},
|
{{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0005)},
|
||||||
{{-2004.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0006)},
|
{{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0006)},
|
||||||
{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
|
{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
|
||||||
{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
|
{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
|
||||||
{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)},
|
{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)},
|
||||||
|
|
@ -44,11 +58,11 @@ w03StructUnk0 lbl_1_data_0[] = {
|
||||||
{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)},
|
{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)},
|
||||||
};
|
};
|
||||||
|
|
||||||
s16 lbl_1_data_1E0 = 1;
|
s16 lbl_1_data_1E0 = -1;
|
||||||
s16 lbl_1_data_1E2 = 1;
|
s16 lbl_1_data_1E2 = -1;
|
||||||
s16 lbl_1_data_1E4 = 1;
|
s16 lbl_1_data_1E4 = -1;
|
||||||
s16 lbl_1_data_1E6 = 1;
|
s16 lbl_1_data_1E6 = -1;
|
||||||
s16 lbl_1_data_1E8 = 1;
|
s16 lbl_1_data_1E8 = -1;
|
||||||
|
|
||||||
typedef struct w03StructUnk1 {
|
typedef struct w03StructUnk1 {
|
||||||
f32 unk_00;
|
f32 unk_00;
|
||||||
|
|
@ -65,12 +79,12 @@ w03StructUnk1 lbl_1_data_1EC = {
|
||||||
0.0f, 118.0f, 120.0f, 180.0f, 180.0f, 240.0f, 240.0f, 300.0f
|
0.0f, 118.0f, 120.0f, 180.0f, 180.0f, 240.0f, 240.0f, 300.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 lbl_1_data_20C = {
|
s32 lbl_1_data_20C[] = {
|
||||||
MAKE_DATA_NUM(0x0077, 0x001C),
|
MAKE_DATA_NUM(0x0077, 0x001C),
|
||||||
DATA_NUM_LISTEND
|
DATA_NUM_LISTEND
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 lbl_1_data_214 = {
|
s32 lbl_1_data_214[] = {
|
||||||
MAKE_DATA_NUM(0x0002, 0x000E),
|
MAKE_DATA_NUM(0x0002, 0x000E),
|
||||||
DATA_NUM_LISTEND
|
DATA_NUM_LISTEND
|
||||||
};
|
};
|
||||||
|
|
@ -94,35 +108,18 @@ s32 lbl_1_data_26C[] = {
|
||||||
0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E
|
0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E
|
||||||
};
|
};
|
||||||
|
|
||||||
|
s32 pad_27C[] = {0};
|
||||||
|
|
||||||
//BSS
|
//BSS
|
||||||
|
s16 lbl_1_bss_C[14];
|
||||||
|
s32 lbl_1_bss_8;
|
||||||
|
omObjData* lbl_1_bss_4;
|
||||||
w03State* lbl_1_bss_0;
|
w03State* lbl_1_bss_0;
|
||||||
|
|
||||||
void fn_1_CF4(void);
|
void fn_1_CF4(void);
|
||||||
|
|
||||||
void fn_1_0(void) {
|
void BoardCreate(void) {
|
||||||
fn_8005B150(&fn_1_E0, &fn_1_740);
|
s32* var_r29;
|
||||||
}
|
|
||||||
|
|
||||||
int _prolog(void) {
|
|
||||||
const VoidFunc* ctors = _ctors;
|
|
||||||
while (*ctors != 0) {
|
|
||||||
(**ctors)();
|
|
||||||
ctors++;
|
|
||||||
}
|
|
||||||
fn_8005B150(&fn_1_E0, &fn_1_740);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _epilog(void) {
|
|
||||||
const VoidFunc* dtors = _dtors;
|
|
||||||
while (*dtors != 0) {
|
|
||||||
(**dtors)();
|
|
||||||
dtors++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void fn_1_E0(void) {
|
|
||||||
Vec* var_r29;
|
|
||||||
f32 var_f30;
|
f32 var_f30;
|
||||||
f32 var_f31;
|
f32 var_f31;
|
||||||
s32 var_r31;
|
s32 var_r31;
|
||||||
|
|
@ -132,62 +129,62 @@ void fn_1_E0(void) {
|
||||||
|
|
||||||
lbl_1_bss_0 = (w03State*)&GWSystem.board_data;
|
lbl_1_bss_0 = (w03State*)&GWSystem.board_data;
|
||||||
lbl_1_bss_0->unk3 = 0;
|
lbl_1_bss_0->unk3 = 0;
|
||||||
fn_800772EC(0x770000);
|
BoardSpaceInit(0x770000);
|
||||||
lbl_1_data_1E0 = fn_8006D9A4(0x770001, NULL, 0);
|
lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0);
|
||||||
fn_8006DDE8(lbl_1_data_1E0, -1.0f);
|
fn_8006DDE8(lbl_1_data_1E0, -1.0f);
|
||||||
fn_8006F1A8(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f);
|
BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f);
|
||||||
fn_8006E2B8(lbl_1_data_1E0, 0, 0x40000001);
|
BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001);
|
||||||
lbl_1_data_1E8 = fn_8006D9A4(0x770003, NULL, 0);
|
lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0);
|
||||||
fn_8006DDE8(lbl_1_data_1E8, -1.0f);
|
fn_8006DDE8(lbl_1_data_1E8, -1.0f);
|
||||||
fn_8006F1A8(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f);
|
BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f);
|
||||||
fn_8006F61C(lbl_1_data_1E8, 2);
|
BoardModelLayerSet(lbl_1_data_1E8, 2);
|
||||||
lbl_1_data_1E2 = fn_8006D9A4(0x770002, NULL, 0);
|
lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0);
|
||||||
fn_8006DDE8(lbl_1_data_1E2, -1.0f);
|
fn_8006DDE8(lbl_1_data_1E2, -1.0f);
|
||||||
fn_8006F1A8(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f);
|
BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f);
|
||||||
fn_8006E2B8(lbl_1_data_1E2, 0, 0x40000001);
|
BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001);
|
||||||
lbl_1_data_1E4 = fn_8006D9A4(0x77001B, &lbl_1_data_20C, 0);
|
lbl_1_data_1E4 = BoardModelCreate(0x77001B, &lbl_1_data_20C, 0);
|
||||||
fn_8006F1A8(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f);
|
BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f);
|
||||||
fn_8006E2B8(lbl_1_data_1E4, 1, 0x40000001);
|
BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001);
|
||||||
lbl_1_data_1E6 = fn_8006D9A4(0x2000D, &lbl_1_data_214, 0);
|
lbl_1_data_1E6 = BoardModelCreate(0x2000D, &lbl_1_data_214, 0);
|
||||||
fn_8006F1A8(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f);
|
BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f);
|
||||||
fn_8006E2B8(lbl_1_data_1E6, 1, 0x40000001);
|
BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001);
|
||||||
|
|
||||||
for (i = 0; i < 0xC; i++) {
|
for (i = 0; i < 12; i++) {
|
||||||
temp_r30 = &lbl_1_data_0[i];
|
temp_r30 = &lbl_1_data_0[i];
|
||||||
if (temp_r30->datanum != -1) {
|
if (temp_r30->datanum != -1) {
|
||||||
if ((i == 10) || (i == 11)) {
|
if ((i == 10) || (i == 11)) {
|
||||||
var_r29 = &lbl_1_data_214;
|
var_r29 = lbl_1_data_214;
|
||||||
} else {
|
} else {
|
||||||
var_r29 = NULL;
|
var_r29 = NULL;
|
||||||
}
|
}
|
||||||
lbl_1_bss_C[i]= fn_8006D9A4(temp_r30->datanum, var_r29, 0);
|
lbl_1_bss_C[i]= BoardModelCreate(temp_r30->datanum, var_r29, 0);
|
||||||
fn_8006F158(lbl_1_bss_C[i], temp_r30);
|
BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->unk_00);
|
||||||
fn_8006F220(lbl_1_bss_C[i], &temp_r30->unk_0C);
|
BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->unk_0C);
|
||||||
fn_8006F2E8(lbl_1_bss_C[i], &temp_r30->unk_18);
|
BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->unk_18);
|
||||||
fn_8006F50C(lbl_1_bss_C[i], 1);
|
BoardModelVisibilitySet(lbl_1_bss_C[i], 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn_8006E2B8(lbl_1_bss_C[10], 1, 0x40000001);
|
BoardModelMotionStart(lbl_1_bss_C[10], 1, 0x40000001);
|
||||||
fn_8006E2B8(lbl_1_bss_C[11], 1, 0x40000001);
|
BoardModelMotionStart(lbl_1_bss_C[11], 1, 0x40000001);
|
||||||
fn_8006E2B8(lbl_1_bss_C[7], 0, 0x40000002);
|
BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002);
|
||||||
fn_8006E2B8(lbl_1_bss_C[9], 0, 0x40000002);
|
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000002);
|
||||||
fn_8006E2B8(lbl_1_bss_C[1], 0, 0x40000002);
|
BoardModelMotionStart(lbl_1_bss_C[1], 0, 0x40000002);
|
||||||
fn_1_3058();
|
fn_1_3058();
|
||||||
fn_1_6494();
|
fn_1_6494();
|
||||||
fn_1_7ABC();
|
fn_1_7ABC();
|
||||||
fn_1_9A7C();
|
fn_1_9A7C();
|
||||||
fn_8005D10C(&fn_1_884, &fn_1_8F0);
|
BoardLightHookSet(&fn_1_884, &fn_1_8F0);
|
||||||
fn_80073FF4(&fn_1_910);
|
BoardSpaceWalkEventFuncSet(&fn_1_910);
|
||||||
fn_80073FFC(&fn_1_A74);
|
BoardSpaceWalkMiniEventFuncSet((void*)&fn_1_A74);
|
||||||
fn_80074004(&fn_1_AF8);
|
BoardSpaceLandEventFuncSet((void*)&fn_1_AF8);
|
||||||
fn_80083EDC(lbl_1_data_1E4);
|
BoardStarHostSet(lbl_1_data_1E4);
|
||||||
fn_800A4F6C(lbl_1_data_1E6);
|
BoardBooHouseHostSet(lbl_1_data_1E6);
|
||||||
fn_8007A83C(lbl_1_data_1E6);
|
BoardLotteryHostSet(lbl_1_data_1E6);
|
||||||
fn_80077AAC(lbl_1_data_1E6);
|
BoardShopHostSet(lbl_1_data_1E6);
|
||||||
fn_80064D84(0x0000C000);
|
BoardJunctionMaskSet(0x0000C000);
|
||||||
fn_80064D84(0x3000);
|
BoardJunctionMaskSet(0x3000);
|
||||||
fn_1_CF4();
|
fn_1_CF4();
|
||||||
fn_8006E2B8(lbl_1_bss_C[0], 0, 0x40000001);
|
BoardModelMotionStart(lbl_1_bss_C[0], 0, 0x40000001);
|
||||||
if (lbl_1_bss_0->unk0 != 0) {
|
if (lbl_1_bss_0->unk0 != 0) {
|
||||||
var_f30 = lbl_1_data_1EC.unk_10;
|
var_f30 = lbl_1_data_1EC.unk_10;
|
||||||
var_f31 = lbl_1_data_1EC.unk_14;
|
var_f31 = lbl_1_data_1EC.unk_14;
|
||||||
|
|
@ -197,14 +194,14 @@ void fn_1_E0(void) {
|
||||||
var_f31 = lbl_1_data_1EC.unk_04;
|
var_f31 = lbl_1_data_1EC.unk_04;
|
||||||
fn_1_63F4(1);
|
fn_1_63F4(1);
|
||||||
}
|
}
|
||||||
fn_8006E0B0(lbl_1_bss_C[0], var_f30, var_f31);
|
BoardModelMotionStartEndSet(lbl_1_bss_C[0], var_f30, var_f31);
|
||||||
fn_8006E2B8(lbl_1_bss_C[2], 0, 0x40000001);
|
BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001);
|
||||||
fn_8006E0B0(lbl_1_bss_C[2], 1, 0x64);
|
BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 0x64);
|
||||||
fn_1_785C();
|
fn_1_785C();
|
||||||
if (lbl_1_bss_0->unk2 != 0) {
|
if (lbl_1_bss_0->unk2 != 0) {
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
if ((lbl_1_bss_0->unk2 & (1 << i)) != 0) {
|
if ((lbl_1_bss_0->unk2 & (1 << i)) != 0) {
|
||||||
fn_80064338(i, &fn_1_2930);
|
BoardPlayerPreTurnHookSet(i, &fn_1_2930);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -212,41 +209,38 @@ void fn_1_E0(void) {
|
||||||
fn_1_DEC();
|
fn_1_DEC();
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_740(void) {
|
void BoardDestroy(void) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
fn_1_10B0();
|
fn_1_10B0();
|
||||||
fn_1_9A9C();
|
fn_1_9A9C();
|
||||||
fn_1_7B58();
|
fn_1_7B58();
|
||||||
for (i = 0; i < 0x0C; i++) {
|
for (i = 0; i < 0x0C; i++) {
|
||||||
fn_8006DB90(lbl_1_bss_C[i]);
|
BoardModelKill(lbl_1_bss_C[i]);
|
||||||
lbl_1_bss_C[i] = -1;
|
lbl_1_bss_C[i] = -1;
|
||||||
}
|
}
|
||||||
if (lbl_1_data_1E6 != -1) {
|
if (lbl_1_data_1E6 != -1) {
|
||||||
fn_8006DB90(lbl_1_data_1E6);
|
BoardModelKill(lbl_1_data_1E6);
|
||||||
lbl_1_data_1E6 = -1;
|
lbl_1_data_1E6 = -1;
|
||||||
}
|
}
|
||||||
if (lbl_1_data_1E4 != -1) {
|
if (lbl_1_data_1E4 != -1) {
|
||||||
fn_8006DB90(lbl_1_data_1E4);
|
BoardModelKill(lbl_1_data_1E4);
|
||||||
lbl_1_data_1E4 = -1;
|
lbl_1_data_1E4 = -1;
|
||||||
}
|
}
|
||||||
if (lbl_1_data_1E0 != -1) {
|
if (lbl_1_data_1E0 != -1) {
|
||||||
fn_8006DB90(lbl_1_data_1E0);
|
BoardModelKill(lbl_1_data_1E0);
|
||||||
lbl_1_data_1E0 = -1;
|
lbl_1_data_1E0 = -1;
|
||||||
}
|
}
|
||||||
if (lbl_1_data_1E2 != -1) {
|
if (lbl_1_data_1E2 != -1) {
|
||||||
fn_8006DB90(lbl_1_data_1E2);
|
BoardModelKill(lbl_1_data_1E2);
|
||||||
lbl_1_data_1E2 = -1;
|
lbl_1_data_1E2 = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern f32 lbl_1_rodata_18;
|
|
||||||
extern f32 lbl_1_rodata_1C;
|
|
||||||
|
|
||||||
void fn_1_884(void) {
|
void fn_1_884(void) {
|
||||||
s32 var = fn_8006DBD4(lbl_1_data_1E0);
|
s16 var = BoardModelIDGet(lbl_1_data_1E0);
|
||||||
Hu3DModelLightInfoSet(var, 1);
|
Hu3DModelLightInfoSet(var, 1);
|
||||||
Hu3DFogSet(lbl_1_rodata_18, lbl_1_rodata_1C, 0xE4U, 0xF0U, 0xFFU);
|
Hu3DFogSet(5000.0f, 30000.0f, 0xE4U, 0xF0U, 0xFFU);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_8F0(void) {
|
void fn_1_8F0(void) {
|
||||||
|
|
@ -256,13 +250,13 @@ void fn_1_8F0(void) {
|
||||||
s32 fn_1_910(void) {
|
s32 fn_1_910(void) {
|
||||||
u32 temp_r3;
|
u32 temp_r3;
|
||||||
s32 cur_player_index;
|
s32 cur_player_index;
|
||||||
s32 unkC;
|
s32 space;
|
||||||
|
|
||||||
cur_player_index = GWSystem.player_curr;
|
cur_player_index = GWSystem.player_curr;
|
||||||
unkC = GWPlayer[cur_player_index].unkC;
|
space = GWPlayer[cur_player_index].space_curr;
|
||||||
temp_r3 = fn_80074138(0, unkC);
|
temp_r3 = BoardSpaceFlagGet(0, space);
|
||||||
if (temp_r3 & 0xC000) {
|
if (temp_r3 & 0xC000) {
|
||||||
if ((fn_8006413C(cur_player_index) == 2) || ((u8) (( GWPlayer[cur_player_index].placement >> 4U) & 1))) {
|
if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) (( GWPlayer[cur_player_index].bowser_suit)))) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (temp_r3 & 0x4000) {
|
if (temp_r3 & 0x4000) {
|
||||||
|
|
@ -277,7 +271,7 @@ s32 fn_1_910(void) {
|
||||||
return fn_1_309C();
|
return fn_1_309C();
|
||||||
}
|
}
|
||||||
if (temp_r3 & 0x200) {
|
if (temp_r3 & 0x200) {
|
||||||
if ((fn_8006413C(cur_player_index) == 2) || ((u8) ((GWPlayer[cur_player_index].placement >> 4U) & 1) != 0)) {
|
if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) ((GWPlayer[cur_player_index].bowser_suit)) != 0)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return fn_1_675C();
|
return fn_1_675C();
|
||||||
|
|
@ -285,9 +279,9 @@ s32 fn_1_910(void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_A74(void) {
|
s32 fn_1_A74(void) {
|
||||||
s16 temp = GWPlayer[GWSystem.player_curr].unkC;
|
s16 space = GWPlayer[GWSystem.player_curr].space_curr;
|
||||||
u32 var = fn_80074138(0, temp) & 0x600000;
|
u32 var = BoardSpaceFlagGet(0, space) & 0x600000;
|
||||||
if (var + -0x200000 == 0) {
|
if (var + -0x200000 == 0) {
|
||||||
fn_1_7BA8();
|
fn_1_7BA8();
|
||||||
return;
|
return;
|
||||||
|
|
@ -298,8 +292,8 @@ void fn_1_A74(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_AF8(void) {
|
void fn_1_AF8(void) {
|
||||||
if ((fn_8006413C(GWSystem.player_curr) == 0) && (fn_1_12C8() != 0) && (lbl_1_bss_0->unk2 != 0)) {
|
if ((BoardPlayerSizeGet(GWSystem.player_curr) == 0) && (fn_1_12C8() != 0) && (lbl_1_bss_0->unk2 != 0)) {
|
||||||
fn_80064D84(0xC00);
|
BoardJunctionMaskSet(0xC00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void fn_1_B5C(s32 arg0) {
|
void fn_1_B5C(s32 arg0) {
|
||||||
|
|
@ -322,38 +316,38 @@ void fn_1_B5C(s32 arg0) {
|
||||||
var_f28 = lbl_1_data_1EC.unk_04;
|
var_f28 = lbl_1_data_1EC.unk_04;
|
||||||
fn_1_63F4(1);
|
fn_1_63F4(1);
|
||||||
}
|
}
|
||||||
fn_8006E2B8(lbl_1_bss_C[0], 0, 0);
|
BoardModelMotionStart(lbl_1_bss_C[0], 0, 0);
|
||||||
fn_8006E674(lbl_1_bss_C[0], var_f30);
|
BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f30);
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = fn_8006E6F8(lbl_1_bss_C[0]);
|
temp = BoardModelMotionTimeGet(lbl_1_bss_C[0]);
|
||||||
if (temp >= var_f29) {
|
if (temp >= var_f29) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
fn_8006E5C4(lbl_1_bss_C[0], 0x40000001);
|
BoardModelAttrSet(lbl_1_bss_C[0], 0x40000001);
|
||||||
fn_8006E674(lbl_1_bss_C[0], var_f31);
|
BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f31);
|
||||||
fn_8006E0B0(lbl_1_bss_C[0], (s32) var_f31, (s32) var_f28);
|
BoardModelMotionStartEndSet(lbl_1_bss_C[0], (s32) var_f31, (s32) var_f28);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_CF4(void) {
|
void fn_1_CF4(void) {
|
||||||
s16 var;
|
s16 var;
|
||||||
s32 i, j;
|
s32 i, j;
|
||||||
spaceData* temp_r28;
|
BoardSpace* temp_r28;
|
||||||
spaceData* temp_r31;
|
BoardSpace* temp_r31;
|
||||||
|
|
||||||
for (i = 0; i < fn_800740B4(0); i++) {
|
for (i = 0; i < BoardSpaceCountGet(0); i++) {
|
||||||
var = i + 1;
|
var = i + 1;
|
||||||
temp_r31 = fn_800740C4(0, var);
|
temp_r31 = BoardSpaceGet(0, var);
|
||||||
for (j = 0; j < temp_r31->num_links; j++) {
|
for (j = 0; j < temp_r31->link_cnt; j++) {
|
||||||
if (fn_80074138(0, temp_r31->links[j]) & 0xC00) {
|
if (BoardSpaceFlagGet(0, temp_r31->link[j]) & 0xC00) {
|
||||||
temp_r28 = fn_800740C4(0, temp_r31->links[j]);
|
temp_r28 = BoardSpaceGet(0, temp_r31->link[j]);
|
||||||
if (lbl_1_bss_0->unk0 != 0) {
|
if (lbl_1_bss_0->unk0 != 0) {
|
||||||
temp_r28->flag |= 0x04000000;
|
temp_r28->flag |= 0x04000000;
|
||||||
fn_80064D84(0xC00);
|
BoardJunctionMaskSet(0xC00);
|
||||||
} else {
|
} else {
|
||||||
temp_r28->flag &= ~0x04000000;
|
temp_r28->flag &= ~0x04000000;
|
||||||
fn_80064D94(0xC00);
|
BoardJunctionMaskReset(0xC00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -370,14 +364,14 @@ void fn_1_DEC(void) {
|
||||||
w03UnkStruct2* temp_r29;
|
w03UnkStruct2* temp_r29;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
temp_r3 = omAddObjEx(lbl_801D3ED4, 0x101, 0, 0, -1, &fn_1_10E4);
|
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, &fn_1_10E4);
|
||||||
lbl_1_bss_4 = temp_r3;
|
lbl_1_bss_4 = temp_r3;
|
||||||
temp_r29 = (w03UnkStruct2*)&temp_r3->work[0];
|
temp_r29 = OM_GET_WORK_PTR(temp_r3, w03UnkStruct2);
|
||||||
temp_r29->unk0 = 0;
|
temp_r29->unk0 = 0;
|
||||||
lbl_1_bss_8 = 0;
|
lbl_1_bss_8 = 0;
|
||||||
fn_8005D530(&sp20);
|
BoardCameraPosGet(&sp20);
|
||||||
fn_8005D628(&sp14);
|
BoardCameraDirGet(&sp14);
|
||||||
HuAudFXListnerSetEX(&sp20, &sp14, 1200.0f, 4800.0f, 36000.0f, 0.0f, 1200.0f);
|
HuAudFXListnerSetEX(&sp20, &sp14, 4800.0f, 36000.0f, 0.0f, 1200.0f, 1200.0f);
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
sp8.x = lbl_1_data_22C[i].x - 3600.0f;
|
sp8.x = lbl_1_data_22C[i].x - 3600.0f;
|
||||||
sp8.y = lbl_1_data_22C[i].y;
|
sp8.y = lbl_1_data_22C[i].y;
|
||||||
|
|
@ -410,7 +404,7 @@ void fn_1_DEC(void) {
|
||||||
|
|
||||||
void fn_1_10B0(void) {
|
void fn_1_10B0(void) {
|
||||||
if (lbl_1_bss_4) {
|
if (lbl_1_bss_4) {
|
||||||
((w03UnkStruct2*)&lbl_1_bss_4->work[0])->unk0 = 1;
|
OM_GET_WORK_PTR(lbl_1_bss_4, w03UnkStruct2)->unk0 = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -420,9 +414,9 @@ void fn_1_10E4(omObjData* arg0) {
|
||||||
s32 i;
|
s32 i;
|
||||||
w03UnkStruct2* temp_r29;
|
w03UnkStruct2* temp_r29;
|
||||||
|
|
||||||
temp_r29 = (w03UnkStruct2*)&arg0->work[0];
|
temp_r29 = OM_GET_WORK_PTR(arg0, w03UnkStruct2);
|
||||||
if (temp_r29->unk0 != 0 || (fn_8005B6A8() != 0)) {
|
if (temp_r29->unk0 != 0 || (BoardIsKill() != 0)) {
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < ARRAY_COUNT(lbl_1_data_21C); i++) {
|
||||||
if (lbl_1_data_21C[i] != -1) {
|
if (lbl_1_data_21C[i] != -1) {
|
||||||
HuAudFXFadeOut(lbl_1_data_21C[i], 100);
|
HuAudFXFadeOut(lbl_1_data_21C[i], 100);
|
||||||
}
|
}
|
||||||
|
|
@ -432,8 +426,8 @@ void fn_1_10E4(omObjData* arg0) {
|
||||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fn_8005D628(&sp8);
|
BoardCameraDirGet(&sp8);
|
||||||
fn_8005D578(&sp14);
|
BoardCameraTargetGet(&sp14);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
if ((WipeStatGet() != 0) || (_CheckFlag(0x1001C) != 0)) {
|
if ((WipeStatGet() != 0) || (_CheckFlag(0x1001C) != 0)) {
|
||||||
|
|
@ -454,4 +448,6 @@ void fn_1_10E4(omObjData* arg0) {
|
||||||
lbl_1_bss_8 = 0;
|
lbl_1_bss_8 = 0;
|
||||||
}
|
}
|
||||||
HuAudFXListnerUpdate(&sp14, &sp8);
|
HuAudFXListnerUpdate(&sp14, &sp8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
f32 const padMain = 0.0f;
|
||||||
956
src/REL/w03Dll/mg_item.c
Normal file
956
src/REL/w03Dll/mg_item.c
Normal file
|
|
@ -0,0 +1,956 @@
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "REL/executor.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "REL/w03Dll.h"
|
||||||
|
#include "game/board/space.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
|
// #include "math.h"
|
||||||
|
#include "board_unsplit.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "dolphin/os/OSFastCast.h"
|
||||||
|
|
||||||
|
double sin(double x);
|
||||||
|
double cos(double x);
|
||||||
|
double atan2(double y, double x);
|
||||||
|
|
||||||
|
#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0])))
|
||||||
|
|
||||||
|
typedef struct someBits {
|
||||||
|
/* 0x00 */ struct {
|
||||||
|
u8 unk00_bit0 : 1;
|
||||||
|
u8 unk00_bit1 : 3;
|
||||||
|
u8 unk00_bit4 : 2;
|
||||||
|
u8 unk00_bit6 : 1;
|
||||||
|
u8 unk00_bit7 : 1;
|
||||||
|
};
|
||||||
|
u8 unk1;
|
||||||
|
u8 unk2;
|
||||||
|
u8 unk3;
|
||||||
|
s16 unk4;
|
||||||
|
s16 unk_06[3];
|
||||||
|
} someBits;
|
||||||
|
|
||||||
|
typedef struct someBits2 {
|
||||||
|
/* 0x00 */ struct {
|
||||||
|
u8 unk00_bit0 : 1;
|
||||||
|
u8 unk00_bit1 : 3;
|
||||||
|
u8 unk00_bit4 : 2;
|
||||||
|
u8 unk00_bit6 : 1;
|
||||||
|
u8 unk00_bit7 : 1;
|
||||||
|
};
|
||||||
|
s8 unk1;
|
||||||
|
s8 unk2;
|
||||||
|
u8 unk3[3];
|
||||||
|
s16 unk_06[3];
|
||||||
|
} someBits2;
|
||||||
|
|
||||||
|
typedef struct w03UnkMG {
|
||||||
|
/* 0x00 */ char unk_00[0x10];
|
||||||
|
/* 0x10 */ s16 unk_10;
|
||||||
|
/* 0x12 */ s16 unk_12;
|
||||||
|
/* 0x14 */ s16 unk_14;
|
||||||
|
/* 0x16 */ s16 unk_16;
|
||||||
|
} w03UnkMG;
|
||||||
|
|
||||||
|
//external symbols
|
||||||
|
extern Process *boardMainProc;
|
||||||
|
extern s16 lbl_1_bss_C[14];
|
||||||
|
extern Process *boardObjMan;
|
||||||
|
extern u16 HuPadBtnDown[4];
|
||||||
|
|
||||||
|
//function signatures
|
||||||
|
s32 BoardModelMotionShiftSet(s16, s32, f32, f32, u32);
|
||||||
|
s32 BoardVecDAngleCalcRange(float *value, float min, float range);
|
||||||
|
void BoardCameraQuakeSet(s32 duration, float strength);
|
||||||
|
s16 MGSeqCreate(s32, ...);
|
||||||
|
u8 MGSeqGetStat(s16);
|
||||||
|
void omVibrate(s16, s16, s16, s16);
|
||||||
|
void BoardPlayerMotBlendSet(s32, s32, s32);
|
||||||
|
f32 BoardPlayerRotYGet(s32);
|
||||||
|
f32 BoardModelMotionTimeGet(s16);
|
||||||
|
s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist);
|
||||||
|
s32 BoardModelScaleGet(s16 model, Vec *dst);
|
||||||
|
s32 BoardModelMotionTimeSet(s16 model, float time);
|
||||||
|
s32 BoardDAngleCalcRange(float *value, float min, float range);
|
||||||
|
u32 BoardRandMod(u32 value);
|
||||||
|
void BoardModelMotionStartEndSet(s16, s32, s32);
|
||||||
|
void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2);
|
||||||
|
s32 BoardModelPosGet(s16 model, Vec *dst);
|
||||||
|
s16 Hu3DMotionShiftIDGet(s16 arg0);
|
||||||
|
f32 BoardPlayerMotionTimeGet(s32);
|
||||||
|
s32 frand(void);
|
||||||
|
|
||||||
|
void fn_1_BE30(s32 arg0, ParticleData* arg1);
|
||||||
|
void fn_1_BDAC(void);
|
||||||
|
void fn_1_BC7C(s16 arg0);
|
||||||
|
void fn_1_BBF8(void);
|
||||||
|
s32 fn_1_BBC4(void);
|
||||||
|
void fn_1_BB74(s8* arg0);
|
||||||
|
s32 fn_1_BB48(void);
|
||||||
|
void fn_1_B8E8(s32 arg0);
|
||||||
|
void fn_1_B748(omObjData* arg0, someBits2* arg1);
|
||||||
|
void fn_1_B688(omObjData* arg0, someBits2* arg1);
|
||||||
|
void fn_1_B4AC(omObjData* arg0, someBits2* arg1);
|
||||||
|
void fn_1_B350(omObjData* arg0);
|
||||||
|
void fn_1_B0A4(s32 arg0);
|
||||||
|
u32 fn_1_AF24(s32 arg0);
|
||||||
|
s32 fn_1_AE4C(s32 arg0, s8* arg1);
|
||||||
|
s32 fn_1_AE20(void);
|
||||||
|
void fn_1_ACD8(s32 arg0);
|
||||||
|
void fn_1_ABD0(omObjData* arg0, someBits* arg1);
|
||||||
|
void fn_1_AB18(omObjData* arg0, someBits* arg1);
|
||||||
|
void fn_1_A8AC(s32 arg0);
|
||||||
|
void fn_1_A7A0(s32 arg0);
|
||||||
|
void fn_1_A994(omObjData* arg0);
|
||||||
|
void fn_1_A5E0(s32 arg0);
|
||||||
|
void fn_1_A6B0(void);
|
||||||
|
void fn_1_A44C(s32 arg0);
|
||||||
|
void fn_1_9C8C(void);
|
||||||
|
void fn_1_9B30(void);
|
||||||
|
s32 fn_1_9CF4(s32 arg0);
|
||||||
|
void fn_1_9F78(void);
|
||||||
|
void fn_1_9FE4(void);
|
||||||
|
|
||||||
|
//DATA
|
||||||
|
s16 lbl_1_data_4D8 = -1;
|
||||||
|
s16 lbl_1_data_4DA = -1;
|
||||||
|
s16 lbl_1_data_4DC = -1;
|
||||||
|
s32 lbl_1_data_4E0 = -1;
|
||||||
|
s16 lbl_1_data_4E4 = -1;
|
||||||
|
s8 lbl_1_data_4E6[] = {1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0};
|
||||||
|
|
||||||
|
char itemString[] = "item";
|
||||||
|
char item1String[] = "item1";
|
||||||
|
char item2String[] = "item2";
|
||||||
|
|
||||||
|
char* lbl_1_data_508[] = {
|
||||||
|
itemString, item1String, item2String
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 lbl_1_data_514[] = {
|
||||||
|
MAKE_DATA_NUM(7, 0x6D),
|
||||||
|
MAKE_DATA_NUM(7, 0x6E),
|
||||||
|
MAKE_DATA_NUM(7, 0x6F),
|
||||||
|
MAKE_DATA_NUM(7, 0x70),
|
||||||
|
MAKE_DATA_NUM(7, 0x71),
|
||||||
|
MAKE_DATA_NUM(7, 0x72),
|
||||||
|
MAKE_DATA_NUM(7, 0x73),
|
||||||
|
MAKE_DATA_NUM(7, 0x74),
|
||||||
|
MAKE_DATA_NUM(7, 0x76),
|
||||||
|
MAKE_DATA_NUM(7, 0x77),
|
||||||
|
MAKE_DATA_NUM(7, 0x78),
|
||||||
|
MAKE_DATA_NUM(7, 0x79),
|
||||||
|
MAKE_DATA_NUM(7, 0x7A),
|
||||||
|
MAKE_DATA_NUM(7, 0x7B),
|
||||||
|
};
|
||||||
|
|
||||||
|
//BSS
|
||||||
|
s8 lbl_1_bss_194[3];
|
||||||
|
AnimData* lbl_1_bss_190;
|
||||||
|
s8 lbl_1_bss_18C;
|
||||||
|
omObjData* lbl_1_bss_188;
|
||||||
|
omObjData* lbl_1_bss_184;
|
||||||
|
Process* lbl_1_bss_180;
|
||||||
|
|
||||||
|
void fn_1_9A7C(void) {
|
||||||
|
fn_1_BBF8();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9A9C(void) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9AA0(void) {
|
||||||
|
BoardDiceDigit2DShowSet(0);
|
||||||
|
lbl_1_bss_180 = HuPrcChildCreate(fn_1_9C8C, 0x2003, 0x2000, 0, boardMainProc);
|
||||||
|
HuPrcDestructorSet2(lbl_1_bss_180, fn_1_9B30);
|
||||||
|
while (lbl_1_bss_180 != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardDiceDigit2DShowSet(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9B30(void) {
|
||||||
|
fn_1_BDAC();
|
||||||
|
if (lbl_1_bss_188) {
|
||||||
|
lbl_1_bss_188;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_184) {
|
||||||
|
OM_GET_WORK_PTR(lbl_1_bss_184, someBits2)->unk00_bit0 = 1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_4E0 != -1) {
|
||||||
|
HuAudFXStop(lbl_1_data_4E0);
|
||||||
|
lbl_1_data_4E0 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_4DC != -1) {
|
||||||
|
BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DC);
|
||||||
|
lbl_1_data_4DC = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_4DA != -1) {
|
||||||
|
BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DA);
|
||||||
|
lbl_1_data_4DA = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_4D8 != -1) {
|
||||||
|
HuWinKill(lbl_1_data_4D8);
|
||||||
|
lbl_1_data_4D8 = -1;
|
||||||
|
}
|
||||||
|
lbl_1_bss_180 = 0U;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9C8C(void) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = GWSystem.player_curr;
|
||||||
|
lbl_1_data_4E0 = -1;
|
||||||
|
if (fn_1_9CF4(temp_r31) != 0) {
|
||||||
|
fn_1_A44C(temp_r31);
|
||||||
|
fn_1_A5E0(temp_r31);
|
||||||
|
}
|
||||||
|
HuPrcEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_9CF4(s32 arg0) {
|
||||||
|
Vec sp38;
|
||||||
|
Vec sp2C;
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s16 spaceCur;
|
||||||
|
s16 temp_r29;
|
||||||
|
|
||||||
|
if (BoardPlayerItemCount(arg0) == 3) {
|
||||||
|
BoardWinCreate(2, 0x16001E, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BoardWinCreateChoice(2, 0x16001A, 2, 0);
|
||||||
|
if (GWPlayer[arg0].com != 0) {
|
||||||
|
BoardComKeySetLeft();
|
||||||
|
}
|
||||||
|
BoardWinWait();
|
||||||
|
if (BoardWinChoiceGet() != 0) {
|
||||||
|
BoardWinCreate(2, 0x16001B, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BoardWinKill();
|
||||||
|
sp14.x = 0.0f;
|
||||||
|
sp14.y = 200.0f;
|
||||||
|
sp14.z = 0.0f;
|
||||||
|
sp8.x = -10.0f;
|
||||||
|
sp8.y = 0.0f;
|
||||||
|
sp8.z = 0.0f;
|
||||||
|
BoardCameraMotionStartEx(lbl_1_bss_C[8], &sp8, &sp14, 1500.0f, -1.0f, 0x15);
|
||||||
|
spaceCur = GWPlayer[arg0].space_curr;
|
||||||
|
temp_r29 = BoardSpaceLinkFlagSearch(0, spaceCur, 0x02000000);
|
||||||
|
BoardPlayerPosGet(arg0, &sp2C);
|
||||||
|
BoardSpacePosGet(0, temp_r29, &sp38);
|
||||||
|
PSVECSubtract(&sp38, &sp2C, &sp20);
|
||||||
|
PSVECNormalize(&sp20, &sp20);
|
||||||
|
BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / 3.141592653589793)));
|
||||||
|
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14);
|
||||||
|
while (GWPlayer[arg0].moving != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
fn_1_B0A4(arg0);
|
||||||
|
fn_1_9F78();
|
||||||
|
fn_1_9FE4();
|
||||||
|
fn_1_A8AC(arg0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9F78(void) {
|
||||||
|
lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770023);
|
||||||
|
lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770024);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_9FE4(void) {
|
||||||
|
Vec sp30;
|
||||||
|
Vec sp24;
|
||||||
|
Vec sp18;
|
||||||
|
Vec spC;
|
||||||
|
f32 sp8;
|
||||||
|
f32 temp_f30;
|
||||||
|
f32 var_f31;
|
||||||
|
|
||||||
|
BoardModelPosGet(lbl_1_bss_C[11], &sp24);
|
||||||
|
sp18.x = (-3179.800048828125 + (200.0 * sin(0.0)));
|
||||||
|
sp18.z = (-907.7000122070313 + 200.0 * cos(0.0));
|
||||||
|
sp18.y = sp24.y;
|
||||||
|
PSVECSubtract(&sp18, &sp24, &spC);
|
||||||
|
temp_f30 = (atan2(spC.z, spC.x) / 3.141592653589793 * 180.0);
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_C[11]);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001);
|
||||||
|
while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_bss_C[11], sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelRotYSet(lbl_1_bss_C[11], temp_f30);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[11], 2.0f);
|
||||||
|
spC.x /= 20.0f;
|
||||||
|
spC.z /= 20.0f;
|
||||||
|
spC.y = 0.0f;
|
||||||
|
sp30 = sp24;
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
while (var_f31 < 20.0f) {
|
||||||
|
PSVECAdd(&sp30, &spC, &sp30);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_C[11], &sp30);
|
||||||
|
HuPrcVSleep();
|
||||||
|
var_f31 += 1.0f;
|
||||||
|
}
|
||||||
|
BoardAudSeqPause(0, 1, 0x3E8);
|
||||||
|
HuAudFXPlay(0x450);
|
||||||
|
HuAudFXPlay(0x362);
|
||||||
|
BoardCameraQuakeSet(3, 100.0f);
|
||||||
|
fn_1_B8E8(1);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DC, 0.0f, 10.0, 0x40000005);
|
||||||
|
PSVECSubtract(&sp24, &sp30, &spC);
|
||||||
|
spC.x /= 60.0f;
|
||||||
|
spC.z /= 60.0f;
|
||||||
|
spC.y = 0.0f;
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
while (var_f31 < 60.0f) {
|
||||||
|
PSVECAdd(&sp30, &spC, &sp30);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_C[11], &sp30);
|
||||||
|
HuPrcVSleep();
|
||||||
|
var_f31 += 1.0f;
|
||||||
|
}
|
||||||
|
temp_f30 = 0.0f;
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_C[11]);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001);
|
||||||
|
while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_bss_C[11], sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A44C(s32 arg0) {
|
||||||
|
s16 temp_r30;
|
||||||
|
s32 temp_r29;
|
||||||
|
s32 temp_r28;
|
||||||
|
|
||||||
|
BoardMusStart(1, 0x17, 0x7F, 0);
|
||||||
|
temp_r30 = MGSeqCreate(3, 0U);
|
||||||
|
while (MGSeqGetStat(temp_r30) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
fn_1_A7A0(arg0);
|
||||||
|
fn_1_A6B0();
|
||||||
|
fn_1_ACD8(1);
|
||||||
|
while (fn_1_AE20() != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
temp_r29 = fn_1_BBC4() + 0x80000;
|
||||||
|
BoardWinCreate(2, 0x16001C, 2);
|
||||||
|
BoardWinInsertMesSet(temp_r29, 0);
|
||||||
|
BoardWinWait();
|
||||||
|
fn_1_B8E8(4);
|
||||||
|
while (fn_1_BB48() != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
omVibrate(arg0, 0xC, 6, 6);
|
||||||
|
BoardPlayerItemAdd(arg0, fn_1_BBC4());
|
||||||
|
fn_1_ACD8(3);
|
||||||
|
temp_r28 = HuAudSStreamPlay(2);
|
||||||
|
while (HuAudSStreamStatGet(temp_r28) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardAudSeqPause(0, 0, 0x3E8);
|
||||||
|
while (lbl_1_bss_188) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuPrcSleep(0x1E);
|
||||||
|
BoardWinCreate(2, 0x16001D, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A5E0(s32 arg0) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s16 spaceCur;
|
||||||
|
|
||||||
|
spaceCur = GWPlayer[arg0].space_curr;
|
||||||
|
BoardPlayerPosGet(arg0, &sp14);
|
||||||
|
BoardSpacePosGet(0, spaceCur, &sp8);
|
||||||
|
BoardCameraTargetPlayerSet(arg0);
|
||||||
|
BoardCameraViewSet(1);
|
||||||
|
BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 0x14);
|
||||||
|
while (GWPlayer[arg0].moving != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelRotYSet(lbl_1_bss_C[11], 0.0f);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A6B0(void) {
|
||||||
|
f32 sp8[2];
|
||||||
|
f32 val1, val2;
|
||||||
|
|
||||||
|
HuWinMesMaxSizeGet(1, sp8, 0x16001F);
|
||||||
|
val1 = -10000.0f;
|
||||||
|
val2 = 392.0f;
|
||||||
|
lbl_1_data_4D8 = HuWinCreate(val1, val2, sp8[0], sp8[1], 0);
|
||||||
|
HuWinBGTPLvlSet(lbl_1_data_4D8, 0.0f);
|
||||||
|
HuWinMesSpeedSet(lbl_1_data_4D8, 0);
|
||||||
|
HuWinMesSet(lbl_1_data_4D8, 0x16001FU);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A7A0(s32 arg0) {
|
||||||
|
someBits* temp_r31;
|
||||||
|
omObjData* temp_r3;
|
||||||
|
|
||||||
|
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_A994);
|
||||||
|
lbl_1_bss_188 = temp_r3;
|
||||||
|
temp_r31 = (someBits*)&temp_r3->work[0];
|
||||||
|
temp_r31->unk00_bit0 = 0;
|
||||||
|
temp_r31->unk00_bit6 = 0;
|
||||||
|
temp_r31->unk00_bit4 = arg0;
|
||||||
|
temp_r31->unk00_bit1 = 0;
|
||||||
|
temp_r31->unk1 = 5U;
|
||||||
|
temp_r31->unk2 = 0x3C;
|
||||||
|
temp_r31->unk4 = MGSeqCreate(1, temp_r31->unk1, 0x120, 0x40);
|
||||||
|
fn_1_BB74(lbl_1_bss_194);
|
||||||
|
lbl_1_bss_18C = fn_1_AE4C(arg0, lbl_1_bss_194);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A8AC(s32 arg0) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
f32 playerYRot;
|
||||||
|
|
||||||
|
BoardModelPosGet(lbl_1_bss_C[9], &sp8);
|
||||||
|
BoardPlayerPosGet(arg0, &sp14);
|
||||||
|
sp8.y = sp14.y;
|
||||||
|
BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 0x14);
|
||||||
|
while (GWPlayer[arg0].moving != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
playerYRot = BoardPlayerRotYGet(arg0) + 180.0f;
|
||||||
|
BoardPlayerMotBlendSet(arg0, playerYRot, 0xF);
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A994(omObjData* arg0) {
|
||||||
|
s32 temp_r0;
|
||||||
|
someBits* temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
|
||||||
|
if ((temp_r31->unk00_bit0 != 0)|| (BoardIsKill() != 0)) {
|
||||||
|
if (temp_r31->unk4 != -1) {
|
||||||
|
MGSeqSetParam(temp_r31->unk4, 2, -1U);
|
||||||
|
temp_r31->unk4 = -1;
|
||||||
|
}
|
||||||
|
lbl_1_bss_188 = NULL;
|
||||||
|
|
||||||
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (temp_r31->unk00_bit6 == 0) {
|
||||||
|
if (temp_r31->unk2 != 0) {
|
||||||
|
temp_r31->unk2--;
|
||||||
|
} else {
|
||||||
|
if (temp_r31->unk1 != 0) {
|
||||||
|
temp_r31->unk1--;
|
||||||
|
} else {
|
||||||
|
fn_1_ACD8(2);
|
||||||
|
}
|
||||||
|
MGSeqSetParam(temp_r31->unk4, 1, temp_r31->unk1);
|
||||||
|
temp_r31->unk2 = 0x3CU;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch (temp_r31->unk00_bit1) {
|
||||||
|
case 1:
|
||||||
|
fn_1_AB18(arg0, temp_r31);
|
||||||
|
return;
|
||||||
|
case 2:
|
||||||
|
fn_1_ABD0(arg0, temp_r31);
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) {
|
||||||
|
temp_r31->unk00_bit0 = 1;
|
||||||
|
}
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_AB18(omObjData* arg0, someBits* arg1) {
|
||||||
|
u32 var_r31 = 0;
|
||||||
|
|
||||||
|
if (GWPlayer[arg1->unk00_bit4].com != 0) {
|
||||||
|
var_r31 = fn_1_AF24(arg1->unk00_bit4);
|
||||||
|
} else {
|
||||||
|
var_r31 = HuPadBtnDown[GWPlayer[arg1->unk00_bit4].port];
|
||||||
|
}
|
||||||
|
if (var_r31 == 0x100) {
|
||||||
|
fn_1_ACD8(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO properly use inlines
|
||||||
|
void fn_1_ABD0(omObjData* arg0, someBits* arg1) {
|
||||||
|
s16 boardModelID;
|
||||||
|
PlayerState* playerStateCopy;
|
||||||
|
s32 bit;
|
||||||
|
PlayerState* playerState;
|
||||||
|
s16 temp, temp2;
|
||||||
|
|
||||||
|
bit = arg1->unk00_bit4;
|
||||||
|
playerState = &GWPlayer[bit];
|
||||||
|
playerStateCopy = playerState;
|
||||||
|
temp = boardPlayerMdl[playerStateCopy->player_idx];
|
||||||
|
temp2 = temp;
|
||||||
|
boardModelID = BoardModelIDGet(temp2);
|
||||||
|
|
||||||
|
if (Hu3DMotionShiftIDGet(boardModelID) == -1) {
|
||||||
|
if (!(arg1->unk00_bit7)) {
|
||||||
|
if (BoardPlayerMotionTimeGet(arg1->unk00_bit4) >= 27.0f) {
|
||||||
|
arg1->unk00_bit7 = 1;
|
||||||
|
BoardAudSeqFadeOut(1, 0x64);
|
||||||
|
fn_1_B8E8(2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (BoardPlayerMotionEndCheck(arg1->unk00_bit4)) {
|
||||||
|
fn_1_ACD8(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_ACD8(s32 arg0) {
|
||||||
|
someBits* temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
|
||||||
|
temp_r31->unk00_bit1 = arg0;
|
||||||
|
switch (arg0) {
|
||||||
|
case 0:
|
||||||
|
BoardRotateDiceNumbers(temp_r31->unk00_bit4);
|
||||||
|
return;
|
||||||
|
case 2:
|
||||||
|
temp_r31->unk00_bit6 = 1;
|
||||||
|
if (lbl_1_data_4D8 != -1) {
|
||||||
|
HuWinKill(lbl_1_data_4D8);
|
||||||
|
lbl_1_data_4D8 = -1;
|
||||||
|
}
|
||||||
|
if (temp_r31->unk4 != -1) {
|
||||||
|
MGSeqSetParam(temp_r31->unk4, 2, -1U);
|
||||||
|
temp_r31->unk4 = -1;
|
||||||
|
}
|
||||||
|
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0);
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_AE20(void) {
|
||||||
|
someBits* temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
|
||||||
|
return temp_r31->unk00_bit1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_AE4C(s32 arg0, s8* arg1) {
|
||||||
|
s32 temp_r30;
|
||||||
|
s32 temp_r29;
|
||||||
|
s32 temp_r28;
|
||||||
|
s32 var_r31;
|
||||||
|
|
||||||
|
temp_r29 = lbl_1_data_4E6[arg1[0]];
|
||||||
|
temp_r28 = lbl_1_data_4E6[arg1[1]];
|
||||||
|
temp_r30 = lbl_1_data_4E6[arg1[2]];
|
||||||
|
if (temp_r29 > temp_r28) {
|
||||||
|
if (temp_r29 > temp_r30) {
|
||||||
|
var_r31 = 0;
|
||||||
|
} else if (temp_r30 > temp_r28) {
|
||||||
|
var_r31 = 2;
|
||||||
|
} else {
|
||||||
|
var_r31 = 1;
|
||||||
|
}
|
||||||
|
} else if (temp_r28 > temp_r30) {
|
||||||
|
var_r31 = 1;
|
||||||
|
} else if (temp_r30 > temp_r29) {
|
||||||
|
var_r31 = 2;
|
||||||
|
} else {
|
||||||
|
var_r31 = 0;
|
||||||
|
}
|
||||||
|
return var_r31;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 fn_1_AF24(s32 arg0) {
|
||||||
|
s32 spC;
|
||||||
|
s32 sp8;
|
||||||
|
s16 temp_r31;
|
||||||
|
s16 var_r30;
|
||||||
|
s8 temp_r0_2;
|
||||||
|
|
||||||
|
spC = 0;
|
||||||
|
switch (GWPlayer[arg0].diff) {
|
||||||
|
case 3:
|
||||||
|
var_r30 = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
var_r30 = 5;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
var_r30 = 15;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
var_r30 = 40;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((var_r30 != 0) && (BoardRandMod(100) < var_r30)) {
|
||||||
|
return 0x100U;
|
||||||
|
}
|
||||||
|
|
||||||
|
temp_r31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]);
|
||||||
|
|
||||||
|
switch (lbl_1_bss_18C) {
|
||||||
|
case 0:
|
||||||
|
if ((temp_r31 < 33) || (temp_r31 > 35)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0x100U;
|
||||||
|
case 1:
|
||||||
|
if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) {
|
||||||
|
return 0x100U;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (temp_r31 >= 50) {
|
||||||
|
return 0x100U;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B0A4(s32 arg0) {
|
||||||
|
Mtx sp18;
|
||||||
|
s32 spC[3];
|
||||||
|
s32 j;
|
||||||
|
s32 i;
|
||||||
|
s32 var_r31_2;
|
||||||
|
s32 temp_r29;
|
||||||
|
someBits2* temp_r30;
|
||||||
|
omObjData* temp_r3;
|
||||||
|
|
||||||
|
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void*)fn_1_B350);
|
||||||
|
lbl_1_bss_184 = (void*)temp_r3;
|
||||||
|
temp_r30 = (someBits2*)&temp_r3->work[0];
|
||||||
|
|
||||||
|
temp_r30->unk00_bit0 = 0;
|
||||||
|
temp_r30->unk00_bit1 = 0;
|
||||||
|
temp_r30->unk00_bit4 = arg0;
|
||||||
|
|
||||||
|
for (i = 0; i < 3;) {
|
||||||
|
spC[i] = BoardRandMod(14);
|
||||||
|
if ((spC[i] != 10) && (spC[i] != 13)) {
|
||||||
|
for (j = 0; j < i; j++) {
|
||||||
|
if (spC[i] == spC[j]) {
|
||||||
|
spC[i] = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (spC[i] == -1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_1_BBF8();
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
temp_r29 = spC[i];
|
||||||
|
temp_r30->unk3[i] = temp_r29;
|
||||||
|
temp_r30->unk_06[i] = BoardModelCreate(lbl_1_data_514[temp_r29], NULL, 0);
|
||||||
|
BoardModelHookSet(lbl_1_bss_C[9], lbl_1_data_508[i], temp_r30->unk_06[i]);
|
||||||
|
BoardModelMotionSpeedSet(temp_r30->unk_06[i], 0.0f);
|
||||||
|
if (temp_r29 == 0xB) {
|
||||||
|
BoardModelMotionStart(temp_r30->unk_06[i], 0, 0x40000001);
|
||||||
|
}
|
||||||
|
if (temp_r29 == 5) {
|
||||||
|
PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f);
|
||||||
|
BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
|
||||||
|
}
|
||||||
|
if ((temp_r29 == 6) || (temp_r29 == 7)) {
|
||||||
|
PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f);
|
||||||
|
BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B350(omObjData* arg0) {
|
||||||
|
s32 i;
|
||||||
|
someBits2* temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = (someBits2*)&arg0->work[0];
|
||||||
|
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
|
||||||
|
BoardModelHookReset(lbl_1_bss_C[9]);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelKill(temp_r31->unk_06[i]);
|
||||||
|
}
|
||||||
|
fn_1_BBF8();
|
||||||
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
|
lbl_1_bss_184 = NULL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (temp_r31->unk00_bit1) {
|
||||||
|
case 1:
|
||||||
|
if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) {
|
||||||
|
BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A);
|
||||||
|
fn_1_B8E8(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
fn_1_B4AC(arg0, temp_r31);
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
fn_1_B688(arg0, temp_r31);
|
||||||
|
return;
|
||||||
|
case 4:
|
||||||
|
fn_1_B748(arg0, temp_r31);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B4AC(omObjData* arg0, someBits2* arg1) {
|
||||||
|
Point3d sp20;
|
||||||
|
Point3d sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp_f31;
|
||||||
|
s8 temp_r0;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
arg1->unk2 = -1;
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[9]), lbl_1_data_508[i], &sp20);
|
||||||
|
BoardPlayerPosGet(arg1->unk00_bit4, &sp14);
|
||||||
|
sp14.y += 66.0f;
|
||||||
|
if (BoardVecMinDistCheck(&sp20, &sp14, 100.0f) != 0) {
|
||||||
|
sp8 = sp20;
|
||||||
|
arg1->unk2 = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HuAudFXPlay(0x30C);
|
||||||
|
BoardModelHookObjReset(lbl_1_bss_C[9], lbl_1_data_508[arg1->unk2]);
|
||||||
|
temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_C[9], 0, 15.0f, 10.0f, 0x40000004U);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.5f);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_C[9], temp_f31);
|
||||||
|
BoardModelPosSetV(arg1->unk_06[arg1->unk2], &sp8);
|
||||||
|
fn_1_B8E8(3);
|
||||||
|
fn_1_BC7C(arg1->unk_06[arg1->unk2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B688(omObjData* arg0, someBits2* arg1) {
|
||||||
|
Point3d sp8;
|
||||||
|
|
||||||
|
if (arg1->unk1-- != 0) {
|
||||||
|
BoardModelPosGet(arg1->unk_06[arg1->unk2], &sp8);
|
||||||
|
sp8.x = sp8.x + arg0->trans.x;
|
||||||
|
sp8.y += arg0->trans.y;
|
||||||
|
sp8.z = sp8.z + arg0->trans.z;
|
||||||
|
BoardModelPosSetV(arg1->unk_06[arg1->unk2], &sp8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_1_B8E8(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B748(omObjData* arg0, someBits2* arg1) {
|
||||||
|
Vec sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp_f0;
|
||||||
|
s16 temp_r29;
|
||||||
|
|
||||||
|
temp_r29 = arg1->unk_06[arg1->unk2];
|
||||||
|
|
||||||
|
if (arg1->unk1 == 0) {
|
||||||
|
HuAudFXPlay(781);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg1->unk1 < 90) {
|
||||||
|
f32 temp;
|
||||||
|
temp_f0 = __OSu8tof32((u8*)&arg1->unk1);
|
||||||
|
BoardModelPosGet(temp_r29, &sp8);
|
||||||
|
sp8.y += arg0->trans.y;
|
||||||
|
BoardModelPosSetV(temp_r29, &sp8);
|
||||||
|
BoardModelRotYSet(temp_r29, 8.0f + BoardModelRotYGet(temp_r29));
|
||||||
|
BoardModelScaleGet(temp_r29, &sp14);
|
||||||
|
sp14.x = sp14.y = sp14.z = cos(3.141592653589793 * temp_f0 / 180.0);
|
||||||
|
BoardModelScaleSetV(temp_r29, &sp14);
|
||||||
|
arg1->unk1 += 4;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lbl_1_data_4E0 != -1) {
|
||||||
|
HuAudFXStop(lbl_1_data_4E0);
|
||||||
|
lbl_1_data_4E0 = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_1_B8E8(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_B8E8(s32 arg0) {
|
||||||
|
Point3d sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp_f31;
|
||||||
|
someBits2* temp_r31;
|
||||||
|
f32 temp;
|
||||||
|
|
||||||
|
temp_r31 = (someBits2*)&lbl_1_bss_184->work[0];
|
||||||
|
temp_r31->unk00_bit1 = arg0;
|
||||||
|
switch (arg0) {
|
||||||
|
case 1:
|
||||||
|
temp_f31 = 0.31666666f;
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f);
|
||||||
|
return;
|
||||||
|
case 2:
|
||||||
|
temp_r31->unk00_bit6 = 1;
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
lbl_1_data_4E0 = HuAudFXPlay(0x35F);
|
||||||
|
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
|
||||||
|
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
|
||||||
|
temp = 50.0f + sp8.y;
|
||||||
|
lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f;
|
||||||
|
lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f;
|
||||||
|
lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f;
|
||||||
|
temp_r31->unk1 = 10;
|
||||||
|
return;
|
||||||
|
case 4:
|
||||||
|
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
|
||||||
|
sp14.y += 30.000002f;
|
||||||
|
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
|
||||||
|
lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f;
|
||||||
|
temp_r31->unk1 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_BB48(void) {
|
||||||
|
someBits2* temp = (someBits2*)&lbl_1_bss_184->work[0];
|
||||||
|
return temp->unk00_bit1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BB74(s8* arg0) {
|
||||||
|
someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
arg0[i] = bits->unk3[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_BBC4(void) {
|
||||||
|
someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
|
||||||
|
return bits->unk3[bits->unk2];
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BBF8(void) {
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.0f);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_C[9], 0.0f);
|
||||||
|
BoardModelAttrReset(lbl_1_bss_C[9], 0x40000004);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fn_1_BC7C(s16 arg0) {
|
||||||
|
ParticleData* particle;
|
||||||
|
|
||||||
|
lbl_1_bss_190 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, 2));
|
||||||
|
HuSprAnimLock(lbl_1_bss_190);
|
||||||
|
lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100);
|
||||||
|
Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30);
|
||||||
|
Hu3DParticleColSet(lbl_1_data_4E4, 0xFF, 0xFF, 0);
|
||||||
|
Hu3DModelPosSet(lbl_1_data_4E4, 0.0f, 0.0f, 0.0f);
|
||||||
|
Hu3DParticleBlendModeSet(lbl_1_data_4E4, 1);
|
||||||
|
Hu3DModelLayerSet(lbl_1_data_4E4, 2);
|
||||||
|
particle = Hu3DData[lbl_1_data_4E4].unk_120;
|
||||||
|
particle->unk_02 = arg0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BDAC(void) {
|
||||||
|
if (lbl_1_data_4E4 != -1) {
|
||||||
|
Hu3DModelKill(lbl_1_data_4E4);
|
||||||
|
lbl_1_data_4E4 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_190) {
|
||||||
|
HuSprAnimKill(lbl_1_bss_190);
|
||||||
|
lbl_1_bss_190 = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BE30(s32 arg0, ParticleData* arg1) {
|
||||||
|
Point3d sp8;
|
||||||
|
|
||||||
|
f32 temp_f30;
|
||||||
|
f32 temp_f29;
|
||||||
|
f32 temp_f31;
|
||||||
|
HsfanimStruct01* var_r31;
|
||||||
|
s32 i, j;
|
||||||
|
|
||||||
|
if (arg1->unk_34 == 0U) {
|
||||||
|
var_r31 = arg1->unk_48;
|
||||||
|
for (i = 0; i < arg1->unk_30; i++, var_r31++) {
|
||||||
|
var_r31->unk40.a = 0;
|
||||||
|
var_r31->unk2C = 0.0f;
|
||||||
|
}
|
||||||
|
arg1->unk_00 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardModelScaleGet(arg1->unk_02, &sp8);
|
||||||
|
temp_f31 = sp8.x;
|
||||||
|
BoardModelPosGet(arg1->unk_02, &sp8);
|
||||||
|
|
||||||
|
for (i = 0; i < 0x16; i++) {
|
||||||
|
var_r31 = arg1->unk_48;
|
||||||
|
for (j = 0; j < arg1->unk_30; j++, var_r31++) {
|
||||||
|
if (0.0f == var_r31->unk2C) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (j != arg1->unk_30) {
|
||||||
|
temp_f30 = 360.0f * (0.003921569f * (frand() & 0xFF));
|
||||||
|
temp_f29 = temp_f31 * (20.0f + (60.0f * (0.003921569f * (frand() & 0xFF))));
|
||||||
|
var_r31->unk34.x = (sp8.x + (temp_f29 * sin((3.141592653589793 * temp_f30) / 180.0)));
|
||||||
|
var_r31->unk34.z = (sp8.z + (temp_f29 * cos((3.141592653589793 * temp_f30) / 180.0)));
|
||||||
|
var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * (0.003921569f * (frand() & 0xFF))))));
|
||||||
|
var_r31->unk08.x = (0.5f + (3.0f * (0.003921569f * (frand() & 0xFF))));
|
||||||
|
var_r31->unk08.y = (0.3f + (2.0f * (0.003921569f * (frand() & 0xFF))));
|
||||||
|
var_r31->unk40.a = 180;
|
||||||
|
var_r31->unk2C = (15.0f * temp_f31);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r31 = arg1->unk_48;
|
||||||
|
|
||||||
|
for (i = 0; i < arg1->unk_30; i++, var_r31++) {
|
||||||
|
if (0.0f != var_r31->unk2C) {
|
||||||
|
var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x);
|
||||||
|
var_r31->unk2C = (var_r31->unk2C - var_r31->unk08.y);
|
||||||
|
if (var_r31->unk2C <= 0.0f) {
|
||||||
|
var_r31->unk2C = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
477
src/REL/w03Dll/river.c
Normal file
477
src/REL/w03Dll/river.c
Normal file
|
|
@ -0,0 +1,477 @@
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "REL/w03Dll.h"
|
||||||
|
#include "board_unsplit.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
|
||||||
|
double sin(double x);
|
||||||
|
double cos(double x);
|
||||||
|
double atan2(double y, double x);
|
||||||
|
s16 BoardModelIDGet(s16 model);
|
||||||
|
void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2);
|
||||||
|
void BoardPlayerMotBlendSet(s32, s32, s32);
|
||||||
|
float BoardModelMotionTimeGet(s16 model);
|
||||||
|
s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr);
|
||||||
|
void BoardPlayerPosSet(s32, f32, f32, f32);
|
||||||
|
s32 BoardModelHookSet(s16 model, char *name, s16 hook);
|
||||||
|
void BoardPlayerMotionShiftSet(s32, s32, f32, f32, s32);
|
||||||
|
|
||||||
|
|
||||||
|
#define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0])))
|
||||||
|
|
||||||
|
extern s16 lbl_1_bss_C[14];
|
||||||
|
extern s16 boardPlayerMdl[4];
|
||||||
|
|
||||||
|
char lbl_1_bss_130[8];
|
||||||
|
omObjData* lbl_1_bss_12C;
|
||||||
|
s16 lbl_1_bss_128;
|
||||||
|
s32 lbl_1_bss_124;
|
||||||
|
Process* lbl_1_bss_120;
|
||||||
|
|
||||||
|
//function signatures
|
||||||
|
void fn_1_67F8(void);
|
||||||
|
void fn_1_6884(void);
|
||||||
|
void fn_1_767C(omObjData* arg0);
|
||||||
|
s32 fn_1_6898(s32 arg0);
|
||||||
|
void fn_1_6B98(s32 arg0);
|
||||||
|
void fn_1_6F9C(s32 arg0);
|
||||||
|
void fn_1_767C(omObjData* arg0);
|
||||||
|
void fn_1_735C(s32 arg0);
|
||||||
|
void fn_1_77E4(s32 arg0);
|
||||||
|
|
||||||
|
typedef struct unkWorkStruct {
|
||||||
|
struct {
|
||||||
|
u8 temp1 : 1;
|
||||||
|
};
|
||||||
|
s8 unk_01[3];
|
||||||
|
f32 unk_04;
|
||||||
|
} unkWorkStruct;
|
||||||
|
|
||||||
|
//DATA
|
||||||
|
s32 lbl_1_data_368[] = {
|
||||||
|
0x00000105, 0x00000145, 0x00000185,
|
||||||
|
0x000001C5, 0x00000205, 0x00000245,
|
||||||
|
0x00000285, 0x000002C5
|
||||||
|
};
|
||||||
|
|
||||||
|
s16 lbl_1_data_388 = -1;
|
||||||
|
s16 lbl_1_data_38A = -1;
|
||||||
|
s16 lbl_1_data_38C = -1;
|
||||||
|
s32 lbl_1_data_390[] = {
|
||||||
|
0x00770026,
|
||||||
|
0x00770027,
|
||||||
|
0x00770028,
|
||||||
|
-1
|
||||||
|
};
|
||||||
|
|
||||||
|
char itemhook_RString[] = "itemhook_R";
|
||||||
|
char hei01String[] = "hei01";
|
||||||
|
char ikadaString[] = "ikada";
|
||||||
|
|
||||||
|
typedef struct unkPos {
|
||||||
|
s32 x;
|
||||||
|
s32 y;
|
||||||
|
s32 z;
|
||||||
|
} unkPos;
|
||||||
|
|
||||||
|
unkPos lbl_1_data_3B8[6] = {
|
||||||
|
{5, 20, 5},
|
||||||
|
{21, 35, 7},
|
||||||
|
{31, 50, 10},
|
||||||
|
{51, 80, 15},
|
||||||
|
{81, 100, 17},
|
||||||
|
{101, 999, 20},
|
||||||
|
};
|
||||||
|
|
||||||
|
void fn_1_63F4(s32 arg0) {
|
||||||
|
Vec spC;
|
||||||
|
unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
|
||||||
|
|
||||||
|
work->unk_04 = 0.0f;
|
||||||
|
BoardModelPosGet(lbl_1_data_388, &spC);
|
||||||
|
if (arg0 != 0) {
|
||||||
|
spC.y = -185.0f;
|
||||||
|
} else {
|
||||||
|
spC.y = 10.0f;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, &spC);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_6494(void) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
unkWorkStruct* temp_r31;
|
||||||
|
|
||||||
|
lbl_1_data_388 = BoardModelCreate(0x77000E, NULL, 0);
|
||||||
|
lbl_1_data_38C = BoardModelCreate(0x77000F, NULL, 0);
|
||||||
|
lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0);
|
||||||
|
BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001);
|
||||||
|
BoardModelHookSet(lbl_1_data_38A, itemhook_RString, lbl_1_data_38C);
|
||||||
|
BoardModelHookSet(lbl_1_data_388, hei01String, lbl_1_data_38A);
|
||||||
|
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14);
|
||||||
|
BoardSpaceFlagPosGet(0, 0x200, &sp8);
|
||||||
|
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
|
||||||
|
sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966));
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, &sp14);
|
||||||
|
lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C);
|
||||||
|
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct);
|
||||||
|
temp_r31->temp1 = 0;
|
||||||
|
temp_r31->unk_04 = 0.0f;
|
||||||
|
lbl_1_bss_124 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_6698(void) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), ikadaString, &sp14);
|
||||||
|
BoardSpaceFlagPosGet(0, 0x200, &sp8);
|
||||||
|
sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966));
|
||||||
|
sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966));
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s16 fn_1_675C(void) {
|
||||||
|
BoardDiceDigit2DShowSet(0);
|
||||||
|
lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc);
|
||||||
|
HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884);
|
||||||
|
while ((u32) lbl_1_bss_120 != 0U) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardDiceDigit2DShowSet(1);
|
||||||
|
return lbl_1_bss_128;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_67F8(void) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = GWSystem.player_curr;
|
||||||
|
lbl_1_bss_128 = 0;
|
||||||
|
if (fn_1_6898(temp_r31) != 0) {
|
||||||
|
fn_1_6F9C(temp_r31);
|
||||||
|
fn_1_6B98(temp_r31);
|
||||||
|
fn_1_735C(temp_r31);
|
||||||
|
lbl_1_bss_128 = 1;
|
||||||
|
}
|
||||||
|
BoardCameraViewSet(1);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
HuPrcEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_6884(void) {
|
||||||
|
lbl_1_bss_120 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_6898(s32 arg0) {
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
f32 temp_f31;
|
||||||
|
s32 var_r27;
|
||||||
|
s32 temp_r3;
|
||||||
|
s32 i, j;
|
||||||
|
s32 temp, temp2;
|
||||||
|
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
BoardCameraViewSet(2);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), hei01String, &sp20);
|
||||||
|
BoardPlayerPosGet(arg0, &sp14);
|
||||||
|
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||||
|
temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793);
|
||||||
|
BoardCameraTargetModelSet(lbl_1_data_388);
|
||||||
|
BoardPlayerMotBlendSet(arg0, temp_f31, 0xF);
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardCameraTargetModelSet(-1);
|
||||||
|
BoardWinCreate(2, 0x160009, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
temp_r3 = BoardPlayerCoinsGet(arg0);
|
||||||
|
if (temp_r3 < 5) {
|
||||||
|
BoardWinCreate(2, 0x16000A, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var_r27 = i = 0; i < 6; i++) {
|
||||||
|
temp = lbl_1_data_3B8[i].x;
|
||||||
|
temp2 = lbl_1_data_3B8[i].y;
|
||||||
|
if (temp_r3 >= temp) {
|
||||||
|
if (temp_r3 <= temp2) {
|
||||||
|
var_r27 = lbl_1_data_3B8[i].z;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sprintf(lbl_1_bss_130, "%d", var_r27);
|
||||||
|
j = 0;
|
||||||
|
while (j == 0) {
|
||||||
|
BoardWinCreateChoice(2, 0x16000B, 2, 0);
|
||||||
|
BoardWinInsertMesSet(lbl_1_bss_130, 2);
|
||||||
|
BoardWinAttrSet(0x10);
|
||||||
|
if (GWPlayer[arg0].com != 0) {
|
||||||
|
fn_1_77E4(arg0);
|
||||||
|
}
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
switch (BoardWinChoiceGet()) {
|
||||||
|
case 0:
|
||||||
|
j = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
case -1:
|
||||||
|
BoardWinCreate(2, 0x16000E, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 0;
|
||||||
|
default:
|
||||||
|
BoardViewMapExec(arg0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i = 0; i < var_r27; i++) {
|
||||||
|
BoardPlayerCoinsAdd(arg0, -1);
|
||||||
|
HuAudFXPlay(0xE);
|
||||||
|
HuPrcSleep(6);
|
||||||
|
}
|
||||||
|
HuAudFXPlay(0xF);
|
||||||
|
BoardWinCreate(2, 0x0016000C, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
float BoardModelRotYGet(s16 model);
|
||||||
|
s32 BoardDAngleCalcRange(float *value, float min, float range);
|
||||||
|
float BoardModelRotYGet(s16 model);
|
||||||
|
|
||||||
|
void fn_1_6B98(s32 arg0) {
|
||||||
|
Vec sp30;
|
||||||
|
Point3d sp24;
|
||||||
|
Vec sp18;
|
||||||
|
Point3d spC;
|
||||||
|
f32 sp8;
|
||||||
|
f32 temp_f1;
|
||||||
|
f32 temp_f31;
|
||||||
|
s16 var_r31;
|
||||||
|
s16 i;
|
||||||
|
|
||||||
|
BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0);
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_data_38A);
|
||||||
|
temp_f31 = sp8 + 180.0f;
|
||||||
|
while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_data_38A, sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelPosGet(lbl_1_data_388, &sp24);
|
||||||
|
BoardSpaceFlagPosGet(0, 0x100, &sp30);
|
||||||
|
sp18.x = sp30.x + (400.0 * sin(1.5707963267948966));
|
||||||
|
sp18.z = sp30.z + (400.0 * cos(1.5707963267948966));
|
||||||
|
sp18.y = sp24.y;
|
||||||
|
PSVECSubtract(&sp18, &sp24, &spC);
|
||||||
|
spC.x = spC.x / 120.0f;
|
||||||
|
spC.y /= 120.0f;
|
||||||
|
spC.z = spC.z / 120.0f;
|
||||||
|
BoardCameraTargetModelSet(lbl_1_data_388);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_data_38A, 3, 0.0f, 4.0f, 0x40000001U);
|
||||||
|
HuPrcSleep(4);
|
||||||
|
var_r31 = 0;
|
||||||
|
for (i = 0; i < 0x78U; i++) {
|
||||||
|
PSVECAdd(&spC, &sp24, &sp24);
|
||||||
|
temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A);
|
||||||
|
if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) {
|
||||||
|
HuAudFXPlay(0x451);
|
||||||
|
var_r31 = 1;
|
||||||
|
}
|
||||||
|
if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) {
|
||||||
|
var_r31 = 0;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, &sp24);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, &sp18);
|
||||||
|
BoardCameraTargetModelSet(-1);
|
||||||
|
BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0x40000004U);
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_data_38A);
|
||||||
|
temp_f31 = 0.0f;
|
||||||
|
while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_data_38A, sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelMotionShiftSet(lbl_1_data_38A, 1, 0.0f, 10.0f, 0x40000001U);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern s32 lbl_1_data_368[];
|
||||||
|
extern w03State* lbl_1_bss_0;
|
||||||
|
|
||||||
|
static inline PlayerState *BoardPlayerGet(s32 player) {
|
||||||
|
return &GWPlayer[player];
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline s16 BoardPlayerModelGet(s32 player) {
|
||||||
|
PlayerState *player_ptr = BoardPlayerGet(player);
|
||||||
|
return boardPlayerMdl[player_ptr->player_idx];
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_6F9C(s32 arg0) {
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
f32 var_f30;
|
||||||
|
f32 var_f29;
|
||||||
|
f32 var_f31;
|
||||||
|
s32 temp_r4;
|
||||||
|
s32 var_r30;
|
||||||
|
s16 model;
|
||||||
|
|
||||||
|
BoardPlayerPosGet(arg0, &sp14);
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp20);
|
||||||
|
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||||
|
sp8.x /= 60.0f;
|
||||||
|
sp8.z /= 60.0f;
|
||||||
|
sp8.y = 0.0f;
|
||||||
|
if (lbl_1_bss_0->unk0 != 0) {
|
||||||
|
var_f30 = 10.0f;
|
||||||
|
var_f29 = 0.21f;
|
||||||
|
sp14.y += sp20.y;
|
||||||
|
} else {
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
var_f29 = 0.15f;
|
||||||
|
}
|
||||||
|
lbl_1_bss_124 = 1;
|
||||||
|
HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]);
|
||||||
|
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U);
|
||||||
|
for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) {
|
||||||
|
PSVECAdd(&sp14, &sp8, &sp14);
|
||||||
|
sp14.y += 10.0f + var_f30 + (var_f29 * (-0.08166667f * var_f31 * var_f31));
|
||||||
|
if (sp14.y <= sp20.y) {
|
||||||
|
sp14.y = sp20.y;
|
||||||
|
if (var_r30 == 0) {
|
||||||
|
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||||
|
var_r30 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(arg0, &sp14);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||||
|
HuPrcSleep(10);
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
if (GWPlayer[arg0].bowser_suit != 0) {
|
||||||
|
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
|
||||||
|
} else {
|
||||||
|
BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0));
|
||||||
|
}
|
||||||
|
BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f);
|
||||||
|
lbl_1_bss_124 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_735C(s32 arg0) {
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp_f1;
|
||||||
|
f32 var_f30;
|
||||||
|
f32 var_f31;
|
||||||
|
s32 temp_r29;
|
||||||
|
s32 temp_r4;
|
||||||
|
s32 var_r30;
|
||||||
|
|
||||||
|
temp_r29 = BoardSpaceFlagPosGet(0, 0x100, &sp20);
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp14);
|
||||||
|
BoardPlayerPosSetV(arg0, &sp14);
|
||||||
|
BoardModelHookObjReset(lbl_1_data_388, "chara01");
|
||||||
|
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||||
|
|
||||||
|
sp8.x = sp8.x / 60.0f;
|
||||||
|
sp8.z = sp8.z / 60.0f;
|
||||||
|
sp8.y = 0.0f;
|
||||||
|
|
||||||
|
HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]);
|
||||||
|
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U);
|
||||||
|
if (lbl_1_bss_0->unk0 != 0) {
|
||||||
|
var_f30 = 0.25f;
|
||||||
|
} else {
|
||||||
|
var_f30 = 0.2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) {
|
||||||
|
PSVECAdd(&sp14, &sp8, &sp14);
|
||||||
|
sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31));
|
||||||
|
if (sp14.y <= sp20.y && var_f31 > 48.0f) {
|
||||||
|
sp14.y = sp20.y;
|
||||||
|
if (var_r30 == 0) {
|
||||||
|
BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U);
|
||||||
|
var_r30 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(arg0, &sp14);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardPlayerPosSetV(arg0, &sp20);
|
||||||
|
HuPrcSleep(0xA);
|
||||||
|
BoardPlayerMotBlendSet(arg0, 0, 0xF);
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
GWPlayer[arg0].space_curr = temp_r29;
|
||||||
|
GWPlayer[arg0].space_prev = -1;
|
||||||
|
BoardPlayerPostTurnHookSet(arg0, fn_1_6698);
|
||||||
|
BoardWinCreate(2, 0x16000D, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fn_1_767C(omObjData* arg0) {
|
||||||
|
Point3d sp8;
|
||||||
|
s32 temp_r30;
|
||||||
|
unkWorkStruct* temp_r31;
|
||||||
|
|
||||||
|
temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct);
|
||||||
|
if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) {
|
||||||
|
lbl_1_bss_12C = NULL;
|
||||||
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((lbl_1_data_388 != -1) && (lbl_1_bss_124 == 0)) {
|
||||||
|
temp_r31->unk_04 += 3.0f;
|
||||||
|
if (temp_r31->unk_04 >= 360.0f) {
|
||||||
|
temp_r31->unk_04 = (f32) (temp_r31->unk_04 - 360.0f);
|
||||||
|
}
|
||||||
|
BoardModelPosGet(lbl_1_data_388, &sp8);
|
||||||
|
sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((3.141592653589793 * (f64) temp_r31->unk_04) / 180.0))));
|
||||||
|
BoardModelPosSetV(lbl_1_data_388, &sp8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_77E4(s32 arg0) {
|
||||||
|
s32 boardIndex;
|
||||||
|
s32 var_r30 = 0;
|
||||||
|
|
||||||
|
boardIndex = GWSystem.star_pos;
|
||||||
|
if ((boardIndex == 1) || (boardIndex == 2) || (boardIndex == 3) || (boardIndex == 4)) {
|
||||||
|
var_r30 = 1;
|
||||||
|
}
|
||||||
|
if (var_r30 != 0) {
|
||||||
|
BoardComKeySetLeft();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BoardComKeySetRight();
|
||||||
|
}
|
||||||
|
|
||||||
|
char padRiver[] = "\0\0\0\0";
|
||||||
83
src/REL/w03Dll/smoke.c
Normal file
83
src/REL/w03Dll/smoke.c
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "REL/w03Dll.h"
|
||||||
|
#include "board_unsplit.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
|
||||||
|
typedef struct w03UnkWorkStruct {
|
||||||
|
s16 unk_00[5];
|
||||||
|
char unk_0A[2];
|
||||||
|
f32 unk_0C;
|
||||||
|
} w03UnkWorkStruct;
|
||||||
|
|
||||||
|
extern w03State* lbl_1_bss_0;
|
||||||
|
omObjData* lbl_1_bss_138[2];
|
||||||
|
extern Process *boardObjMan;
|
||||||
|
extern s16 lbl_1_data_1E0;
|
||||||
|
|
||||||
|
void fn_1_79E0(omObjData* arg0);
|
||||||
|
f32 BoardModelMotionMaxTimeGet(s16);
|
||||||
|
|
||||||
|
char kemuri1[] = "kemuri1";
|
||||||
|
char kemuri2[] = "kemuri2";
|
||||||
|
char kemuri3[] = "kemuri3";
|
||||||
|
char kemuri4[] = "kemuri4";
|
||||||
|
char kemuri5[] = "kemuri5";
|
||||||
|
|
||||||
|
char* kemuri_strings[] = {
|
||||||
|
kemuri1, kemuri2, kemuri3,
|
||||||
|
kemuri4, kemuri5
|
||||||
|
};
|
||||||
|
|
||||||
|
void fn_1_785C(void) {
|
||||||
|
f32 var_f31;
|
||||||
|
s32 i;
|
||||||
|
w03UnkWorkStruct* temp_r31;
|
||||||
|
char* temp_r29;
|
||||||
|
|
||||||
|
lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
|
||||||
|
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0];
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0);
|
||||||
|
temp_r29 = kemuri_strings[i];
|
||||||
|
if (0.0f == temp_r31->unk_0C) {
|
||||||
|
temp_r31->unk_0C = BoardModelMotionMaxTimeGet(temp_r31->unk_00[i]);
|
||||||
|
}
|
||||||
|
var_f31 = temp_r31->unk_0C * BoardRandFloat();
|
||||||
|
if (var_f31 < 1.0f) {
|
||||||
|
var_f31 = 1.0f;
|
||||||
|
}
|
||||||
|
BoardModelHookSet(lbl_1_data_1E0, temp_r29, temp_r31->unk_00[i]);
|
||||||
|
BoardModelMotionStart(temp_r31->unk_00[i], 0, 0x40000001);
|
||||||
|
BoardModelMotionTimeSet(temp_r31->unk_00[i], var_f31);
|
||||||
|
BoardModelLayerSet(temp_r31->unk_00[i], 2);
|
||||||
|
BoardModelPassSet(temp_r31->unk_00[i], 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_79E0(omObjData* arg0) {
|
||||||
|
s32 var_r29;
|
||||||
|
s32 i;
|
||||||
|
w03UnkWorkStruct* temp_r30;
|
||||||
|
|
||||||
|
temp_r30 = (w03UnkWorkStruct*)&arg0->work[0];
|
||||||
|
|
||||||
|
if (BoardIsKill() != 0) {
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
BoardModelKill(temp_r30->unk_00[i]);
|
||||||
|
}
|
||||||
|
lbl_1_bss_138[0] = NULL;
|
||||||
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_0->unk3 != 0) {
|
||||||
|
var_r29 = 0;
|
||||||
|
} else {
|
||||||
|
var_r29 = 1;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
BoardModelVisibilitySet(temp_r30->unk_00[i], var_r29);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char pad[4] = "\0\0\0\0";
|
||||||
651
src/REL/w03Dll/statue.c
Normal file
651
src/REL/w03Dll/statue.c
Normal file
|
|
@ -0,0 +1,651 @@
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "REL/executor.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "REL/w03Dll.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/board/space.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
|
#include "board_unsplit.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
|
||||||
|
void fn_1_1358(void);
|
||||||
|
void fn_1_152C(void);
|
||||||
|
s32 fn_1_15E8(void);
|
||||||
|
s32 fn_1_1650(s32 arg0);
|
||||||
|
void fn_1_19DC(s32 arg0, s32 arg1);
|
||||||
|
s32 fn_1_1D1C(void);
|
||||||
|
void fn_1_1ED4(s32 arg0);
|
||||||
|
void fn_1_20E0(s32 arg0);
|
||||||
|
void fn_1_26E0(s32 arg0);
|
||||||
|
void fn_1_2AC0(void);
|
||||||
|
void fn_1_2818(void);
|
||||||
|
void fn_1_2A40(void);
|
||||||
|
void fn_1_2B44(void);
|
||||||
|
s32 BoardDAngleCalcRange(f32*, f32, f32);
|
||||||
|
s32 BoardPlayerMotBlendCheck(s32);
|
||||||
|
void BoardPlayerMotBlendSet(s32, s32, s32);
|
||||||
|
f32 BoardPlayerRotYGet(s32);
|
||||||
|
void BoardConfettiCreate(Point3d*, s16, f32);
|
||||||
|
double atan2(double y, double x);
|
||||||
|
void omVibrate(s16, s16, s16, s16);
|
||||||
|
f32 BoardModelMotionTimeGet(s16);
|
||||||
|
|
||||||
|
//DATA
|
||||||
|
s16 lbl_1_data_280 = -1;
|
||||||
|
s16 lbl_1_data_282 = -1;
|
||||||
|
s16 lbl_1_data_284 = -1;
|
||||||
|
s16 lbl_1_data_286 = -1;
|
||||||
|
s32 lbl_1_data_288 = -1;
|
||||||
|
|
||||||
|
char lbl_1_data_28C[] = "%d";
|
||||||
|
|
||||||
|
s32 lbl_1_data_290[] = { //TODO: make sure this actually uses MAKE_DATA_NUM macro
|
||||||
|
MAKE_DATA_NUM(0x5F, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x1A, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x6D, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x8A, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x85, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x11, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x0D, 0x62),
|
||||||
|
MAKE_DATA_NUM(0x81, 0x62),
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 lbl_1_data_2B0[] = { //TODO: make sure this actually uses MAKE_DATA_NUM macro
|
||||||
|
MAKE_DATA_NUM(0x5F, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x1A, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x6D, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x8A, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x85, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x11, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x0D, 0x33),
|
||||||
|
MAKE_DATA_NUM(0x81, 0x33),
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 lbl_1_data_2D0[] = {
|
||||||
|
0x00000125, 0x00000165, 0x000001A5,
|
||||||
|
0x000001E5, 0x00000225, 0x00000265,
|
||||||
|
0x000002A5, 0x000002E5
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 lbl_1_data_2F0[] = {
|
||||||
|
0x0000012E, 0x0000016E, 0x000001AE,
|
||||||
|
0x000001EE, 0x0000022E, 0x0000026E,
|
||||||
|
0x000002AE, 0x000002EE
|
||||||
|
};
|
||||||
|
|
||||||
|
//BSS Extern
|
||||||
|
extern w03State* lbl_1_bss_0;
|
||||||
|
extern Process *boardMainProc;
|
||||||
|
extern s16 lbl_1_bss_C[14];
|
||||||
|
|
||||||
|
//BSS
|
||||||
|
s8 lbl_1_bss_6F;
|
||||||
|
s8 lbl_1_bss_6E;
|
||||||
|
s16 lbl_1_bss_6C;
|
||||||
|
s16 lbl_1_bss_6A;
|
||||||
|
s16 lbl_1_bss_68;
|
||||||
|
GXTexObj lbl_1_bss_48;
|
||||||
|
char lbl_1_bss_44[4];
|
||||||
|
char lbl_1_bss_38[12];
|
||||||
|
void* lbl_1_bss_34;
|
||||||
|
f32 lbl_1_bss_30;
|
||||||
|
s8 lbl_1_bss_2C;
|
||||||
|
Process* lbl_1_bss_28;
|
||||||
|
|
||||||
|
s32 fn_1_12C8(void) {
|
||||||
|
BoardDiceDigit2DShowSet(0);
|
||||||
|
lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc);
|
||||||
|
HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C);
|
||||||
|
|
||||||
|
while (lbl_1_bss_28) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
return BoardDiceDigit2DShowSet(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1358(void) {
|
||||||
|
s32 cur_player_index;
|
||||||
|
s32 unkC;
|
||||||
|
|
||||||
|
cur_player_index = GWSystem.player_curr;
|
||||||
|
unkC = GWPlayer[cur_player_index].space_curr;
|
||||||
|
lbl_1_bss_2C = 0;
|
||||||
|
if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) {
|
||||||
|
lbl_1_bss_6E = 0;
|
||||||
|
lbl_1_bss_6C = lbl_1_bss_C[3];
|
||||||
|
} else {
|
||||||
|
lbl_1_bss_6E = 1;
|
||||||
|
lbl_1_bss_6C = lbl_1_bss_C[4];
|
||||||
|
}
|
||||||
|
if (fn_1_1650(cur_player_index) != 0) {
|
||||||
|
if (fn_1_1D1C() != 0) {
|
||||||
|
fn_1_1ED4(cur_player_index);
|
||||||
|
} else {
|
||||||
|
fn_1_20E0(cur_player_index);
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_2C) {
|
||||||
|
sprintf(lbl_1_bss_44, lbl_1_data_28C, lbl_1_bss_2C);
|
||||||
|
BoardWinCreate(0, 0x160006, -1);
|
||||||
|
BoardWinInsertMesSet((s32)lbl_1_bss_44, 0);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
lbl_1_bss_0->unk2 = 1 << cur_player_index;
|
||||||
|
lbl_1_bss_0->unk0 = lbl_1_bss_2C;
|
||||||
|
fn_1_CF4();
|
||||||
|
}
|
||||||
|
fn_1_26E0(cur_player_index);
|
||||||
|
BoardStatusShowSetAll(1);
|
||||||
|
}
|
||||||
|
BoardPlayerPostTurnHookSet(cur_player_index, &fn_1_15E8);
|
||||||
|
BoardWinKill();
|
||||||
|
HuPrcEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_152C(void) {
|
||||||
|
BoardConfettiKill();
|
||||||
|
if (lbl_1_data_282 != -1) {
|
||||||
|
BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_282);
|
||||||
|
lbl_1_data_282 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_280 != -1) {
|
||||||
|
BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_280);
|
||||||
|
lbl_1_data_280 = -1;
|
||||||
|
}
|
||||||
|
fn_1_2AC0();
|
||||||
|
lbl_1_bss_28 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_15E8(void) {
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_6C, 1);
|
||||||
|
if (lbl_1_data_284 != -1) {
|
||||||
|
BoardModelKill(lbl_1_data_284);
|
||||||
|
lbl_1_data_284 = -1;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_1650(s32 arg0) {
|
||||||
|
Point3d sp38;
|
||||||
|
Point3d sp2C;
|
||||||
|
Point3d sp20;
|
||||||
|
Point3d sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp;
|
||||||
|
s32 temp2;
|
||||||
|
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
|
||||||
|
if (lbl_1_bss_0->unk2) {
|
||||||
|
BoardWinCreate(0, 0x160000, -1);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000);
|
||||||
|
BoardSpacePosGet(0, temp2, &sp38);
|
||||||
|
BoardPlayerPosGet(arg0, &sp2C);
|
||||||
|
PSVECSubtract(&sp38, &sp2C, &sp20);
|
||||||
|
temp = (atan2(-sp20.x, -sp20.z) / 3.141592653589793) * 180.0f;
|
||||||
|
BoardPlayerRotYSet(arg0, temp);
|
||||||
|
sp14.x = 0.0f;
|
||||||
|
sp14.y = 100.0f;
|
||||||
|
sp14.z = 0.0f;
|
||||||
|
sp8.x = -20.0f;
|
||||||
|
sp8.y = 0.0f;
|
||||||
|
sp8.z = 0.0f;
|
||||||
|
BoardCameraMotionStartEx(lbl_1_bss_6C, &sp8, &sp14, 1360.0f, -1.0f, 0x15);
|
||||||
|
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x28);
|
||||||
|
|
||||||
|
while (GWPlayer[arg0].moving) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardStatusShowSetAll(0);
|
||||||
|
BoardPlayerMotBlendSet(arg0, 0xB4, 0xF);
|
||||||
|
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
BoardWinCreate(2, 0x160001, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinCreateChoice(0, 0x160002, -1, 0);
|
||||||
|
BoardWinAttrSet(0x10);
|
||||||
|
if (GWPlayer[arg0].com) {
|
||||||
|
if (BoardRandMod(0x64) > 0x32U) {
|
||||||
|
BoardComKeySetLeft();
|
||||||
|
} else {
|
||||||
|
BoardComKeySetRight();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardWinWait();
|
||||||
|
lbl_1_bss_6F = BoardWinChoiceGet();
|
||||||
|
BoardWinKill();
|
||||||
|
fn_1_19DC(arg0, lbl_1_bss_6F);
|
||||||
|
BoardFilterFadeInit(0x1E, 0xA0);
|
||||||
|
BoardMusStart(1, 0x19, 0x7F, 0);
|
||||||
|
HuAudFXPlay(0x435);
|
||||||
|
sp8.y = BoardModelRotYGet(lbl_1_bss_6C);
|
||||||
|
|
||||||
|
while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_bss_6C, sp8.y);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
HuAudFXPlay(0x445);
|
||||||
|
BoardModelRotYSet(lbl_1_bss_6C, 180.0f);
|
||||||
|
|
||||||
|
while (BoardMusStatusGet(1) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_19DC(s32 arg0, s32 arg1) {
|
||||||
|
s32 temp_r30;
|
||||||
|
s32 temp_r5;
|
||||||
|
s32 temp_r5_2;
|
||||||
|
s32 var_r29;
|
||||||
|
f32 temp;
|
||||||
|
|
||||||
|
temp_r30 = GWPlayer[arg0].character;
|
||||||
|
if (arg1 != 0) {
|
||||||
|
lbl_1_data_282 = BoardPlayerMotionCreate(arg0, lbl_1_data_2B0[temp_r30]);
|
||||||
|
lbl_1_bss_6A = 8;
|
||||||
|
lbl_1_bss_68 = lbl_1_data_282;
|
||||||
|
var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character];
|
||||||
|
} else {
|
||||||
|
lbl_1_bss_6A = 7;
|
||||||
|
lbl_1_bss_68 = 1;
|
||||||
|
var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character];
|
||||||
|
}
|
||||||
|
lbl_1_data_280 = BoardPlayerMotionCreate(arg0, lbl_1_data_290[temp_r30]);
|
||||||
|
temp = (180.0f + BoardPlayerRotYGet(arg0));
|
||||||
|
BoardPlayerMotBlendSet(arg0, temp, 0xF);
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuAudFXPlay(var_r29);
|
||||||
|
BoardPlayerVoiceEnableSet(arg0, lbl_1_bss_6A, 0);
|
||||||
|
BoardPlayerMotionShiftSet(arg0, lbl_1_bss_6A, 0.0f, 8.0f, 0);
|
||||||
|
HuPrcSleep(9);
|
||||||
|
|
||||||
|
while (BoardPlayerMotionEndCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
|
||||||
|
}
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
|
||||||
|
if (arg1 != 0) {
|
||||||
|
BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, 0);
|
||||||
|
HuPrcSleep(9);
|
||||||
|
while (BoardPlayerMotionEndCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
HuPrcSleep(0x14);
|
||||||
|
temp = (180.0f + BoardPlayerRotYGet(arg0));
|
||||||
|
BoardPlayerMotBlendSet(arg0, temp, 0xF);
|
||||||
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardAudSeqPause(0, 1, 0x3E8);
|
||||||
|
BoardPlayerMotionShiftSet(arg0, lbl_1_data_280, 0.0f, 10.0f, 0);
|
||||||
|
HuPrcSleep(0xB);
|
||||||
|
while (BoardPlayerMotionEndCheck(arg0) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_1D1C(void) {
|
||||||
|
s32 sp34;
|
||||||
|
s32 sp30;
|
||||||
|
s32 sp2C;
|
||||||
|
s32 sp28;
|
||||||
|
s32 sp24;
|
||||||
|
s32 sp20;
|
||||||
|
s32 modRand2;
|
||||||
|
s32 var_r31;
|
||||||
|
s32 temp2;
|
||||||
|
s32 modRand;
|
||||||
|
s32 prevTurn;
|
||||||
|
s32 maxTurn;
|
||||||
|
|
||||||
|
s32 sp8[3] = { 70, 50, 45 };
|
||||||
|
s32 sp14[3][3] = {
|
||||||
|
{3, 5, 22},
|
||||||
|
{5, 10, 35},
|
||||||
|
{5, 15, 35}
|
||||||
|
};
|
||||||
|
|
||||||
|
while (BoardMusStatusGet(1) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardWinCreate(2, 0x160003, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
prevTurn = GWSystem.turn - 1;
|
||||||
|
maxTurn = GWSystem.max_turn;
|
||||||
|
var_r31 = prevTurn / (maxTurn / 3);
|
||||||
|
if (var_r31 >= 3) {
|
||||||
|
var_r31 = 2;
|
||||||
|
}
|
||||||
|
modRand = BoardRandMod(100);
|
||||||
|
if (modRand < sp8[var_r31] ) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
modRand2 = BoardRandMod(100 - sp8[var_r31]);
|
||||||
|
if (modRand2 < sp14[var_r31][0]) {
|
||||||
|
lbl_1_bss_2C = 3;
|
||||||
|
} else if (modRand2 < sp14[var_r31][1]) {
|
||||||
|
lbl_1_bss_2C = 2;
|
||||||
|
} else {
|
||||||
|
lbl_1_bss_2C = 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_1ED4(s32 arg0) {
|
||||||
|
Point3d spC;
|
||||||
|
f32 sp8;
|
||||||
|
|
||||||
|
lbl_1_data_284 = BoardModelCreate(0x77000C, NULL, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_data_284, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_6C, 0);
|
||||||
|
BoardModelPosGet(lbl_1_bss_6C, &spC);
|
||||||
|
BoardModelVisibilitySet(lbl_1_data_284, 1);
|
||||||
|
BoardModelPosSetV(lbl_1_data_284, &spC);
|
||||||
|
BoardFilterFadeOut(0x1E);
|
||||||
|
BoardPlayerPosGet(arg0, &spC);
|
||||||
|
spC.y += 700.0f;
|
||||||
|
BoardConfettiCreate(&spC, 0x64, 300.0f);
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_6C);
|
||||||
|
|
||||||
|
while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_data_284, sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
omVibrate(arg0, 0xC, 4, 2);
|
||||||
|
BoardMusStart(1, 0x1A, 0x7F, 0);
|
||||||
|
BoardModelRotYSet(lbl_1_data_284, 0.0f);
|
||||||
|
BoardModelRotYSet(lbl_1_bss_6C, 0.0f);
|
||||||
|
|
||||||
|
while (BoardFilterFadePauseCheck() == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
|
||||||
|
while (BoardMusStatusGet(1) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardAudSeqPause(0, 0, 1000);
|
||||||
|
BoardWinCreate(2, 0x160004, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
BoardConfettiStop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_20E0(s32 arg0) {
|
||||||
|
Point3d sp24;
|
||||||
|
Point3d sp18;
|
||||||
|
Point3d spC;
|
||||||
|
f32 sp8;
|
||||||
|
f32 var_f31;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
lbl_1_data_284 = BoardModelCreate(0x77000D, NULL, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_data_284, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_6C, 0);
|
||||||
|
BoardModelPosGet(lbl_1_bss_6C, &spC);
|
||||||
|
BoardModelVisibilitySet(lbl_1_data_284, 1);
|
||||||
|
BoardModelPosSetV(lbl_1_data_284, &spC);
|
||||||
|
BoardFilterFadeOut(0x1E);
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_6C);
|
||||||
|
while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) {
|
||||||
|
BoardModelRotYSet(lbl_1_data_284, sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
omVibrate(arg0, 0xC, 4, 2);
|
||||||
|
BoardModelRotYSet(lbl_1_data_284, 0.0f);
|
||||||
|
BoardModelRotYSet(lbl_1_bss_6C, 0.0f);
|
||||||
|
|
||||||
|
while (BoardFilterFadePauseCheck() == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardMusStart(1, 0x1B, 0x7F, 0);
|
||||||
|
HuAudFXPlay(0x44A);
|
||||||
|
fn_1_2A40();
|
||||||
|
lbl_1_bss_30 = 0.0f;
|
||||||
|
|
||||||
|
while (lbl_1_bss_30 < 128.0f) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
lbl_1_bss_30 += 12.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lbl_1_bss_30 > 128.0f) {
|
||||||
|
lbl_1_bss_30 = 128.0f;
|
||||||
|
}
|
||||||
|
HuPrcSleep(0x28);
|
||||||
|
lbl_1_bss_30 = 128.0f;
|
||||||
|
|
||||||
|
while (lbl_1_bss_30 > 0.0f) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
lbl_1_bss_30 -= 12.0f;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_30 < 0.0f) {
|
||||||
|
lbl_1_bss_30 = 0.0f;
|
||||||
|
}
|
||||||
|
fn_1_2AC0();
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardCameraMotionStartEx(-1, NULL, 0, 680.0f, -1.0f, 0xD);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
BoardCameraMotionStartEx(-1, NULL, 0, 1360.0f, -1.0f, 0xD);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
while (BoardMusStatusGet(1) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardAudSeqPause(0, 0, 1000);
|
||||||
|
BoardWinCreate(2, 0x160005, 2);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardCameraQuakeSet(0x8CA0, 100.0f);
|
||||||
|
omVibrate(arg0, 0xE10, 4, 2);
|
||||||
|
lbl_1_data_288 = HuAudFXPlay(0x436);
|
||||||
|
BoardCameraViewSet(1);
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
sp24.x = 0.0f;
|
||||||
|
sp24.y = 100.0f;
|
||||||
|
sp24.z = 0.0f;
|
||||||
|
sp18.x = -20.0f;
|
||||||
|
sp18.y = 0.0f;
|
||||||
|
sp18.z = 0.0f;
|
||||||
|
BoardCameraMotionStartEx(lbl_1_bss_C[1], &sp18, &sp24, 3000.0f, -1.0f, 0x3C);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
omVibrate(arg0, 0x1E, 6, 6);
|
||||||
|
HuPrcSleep(0x1E);
|
||||||
|
|
||||||
|
for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) {
|
||||||
|
BoardCameraQuakeSet(0xA, var_f31);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardCameraQuakeReset();
|
||||||
|
if (lbl_1_data_288 != 0) {
|
||||||
|
HuAudFXStop(lbl_1_data_288);
|
||||||
|
lbl_1_data_288 = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_1_2818();
|
||||||
|
omVibrate(arg0, 0xC, 0xC, 0);
|
||||||
|
HuAudFXPlay(0x438);
|
||||||
|
fn_1_B5C(1);
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
sp24.x = 0.0f;
|
||||||
|
sp24.y = 100.0f;
|
||||||
|
sp24.z = 0.0f;
|
||||||
|
sp18.x = -20.0f;
|
||||||
|
sp18.y = 0.0f;
|
||||||
|
sp18.z = 0.0f;
|
||||||
|
BoardCameraMotionStartEx(lbl_1_bss_6C, &sp18, &sp24, 1360.0f, -1.0f, 0x3C);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_26E0(s32 arg0) {
|
||||||
|
Point3d sp20;
|
||||||
|
Point3d sp14;
|
||||||
|
Point3d sp8;
|
||||||
|
f32 temp;
|
||||||
|
|
||||||
|
BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp20);
|
||||||
|
BoardPlayerPosGet(arg0, &sp14);
|
||||||
|
PSVECSubtract(&sp20, &sp14, &sp8);
|
||||||
|
PSVECNormalize(&sp8, &sp8);
|
||||||
|
temp = (180.0f * (atan2(-sp8.x, -sp8.z) / 3.141592653589793));
|
||||||
|
BoardPlayerRotYSet(arg0, temp);
|
||||||
|
BoardCameraViewSet(1);
|
||||||
|
BoardCameraTargetPlayerSet(arg0);
|
||||||
|
BoardPlayerPosLerpStart(arg0, &sp14, &sp20, 0x28);
|
||||||
|
while (GWPlayer[arg0].moving != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[1], 0, 0);
|
||||||
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2818(void) {
|
||||||
|
s16 temp_r29;
|
||||||
|
s16 temp_r30;
|
||||||
|
s16 j;
|
||||||
|
s16 sp8[3] = {0x0002, 0x003E, 0x007A};
|
||||||
|
|
||||||
|
temp_r29 = (4 - lbl_1_bss_2C) * 0x3C;
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[1], 0, 0);
|
||||||
|
while (1) {
|
||||||
|
temp_r30 = BoardModelMotionTimeGet(lbl_1_bss_C[1]);
|
||||||
|
if (temp_r29 > temp_r30) {
|
||||||
|
for (j = 0; j < ARRAY_COUNT(sp8); j++) {
|
||||||
|
if (temp_r30 == sp8[j]) {
|
||||||
|
HuAudFXPlay(0x446);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002);
|
||||||
|
HuPrcSleep(0x3C);
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 fn_1_2930(s32 arg0) {
|
||||||
|
lbl_1_bss_0->unk0--;
|
||||||
|
if (lbl_1_bss_0->unk0 <= 0) {
|
||||||
|
lbl_1_bss_0->unk2 = 0;
|
||||||
|
lbl_1_bss_0->unk0 = 0;
|
||||||
|
fn_1_B5C(0);
|
||||||
|
BoardWinCreate(0, 0x160008, -1);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
fn_1_CF4();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
sprintf(lbl_1_bss_38, lbl_1_data_28C, lbl_1_bss_0->unk0);
|
||||||
|
BoardWinCreate(0, 0x160007, -1);
|
||||||
|
BoardWinInsertMesSet((s32)lbl_1_bss_38, 1);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
fn_1_CF4();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2A40(void) {
|
||||||
|
lbl_1_bss_30 = 0.0f;
|
||||||
|
lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, 0x10000000U);
|
||||||
|
lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44);
|
||||||
|
Hu3DModelLayerSet(lbl_1_data_286, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2AC0(void) {
|
||||||
|
if (lbl_1_bss_34) {
|
||||||
|
HuMemDirectFree(lbl_1_bss_34);
|
||||||
|
lbl_1_bss_34 = NULL;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_286 != -1) {
|
||||||
|
Hu3DModelKill(lbl_1_data_286);
|
||||||
|
lbl_1_data_286 = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2B44(void) {
|
||||||
|
Mtx44 sp50;
|
||||||
|
Mtx sp20;
|
||||||
|
GXColor sp14;
|
||||||
|
GXColor sp10;
|
||||||
|
GXColor spC;
|
||||||
|
u8 sp8;
|
||||||
|
GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||||
|
GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||||
|
|
||||||
|
f32 temp_f28 = 0.0f;
|
||||||
|
f32 temp_f30 = 640.0f;
|
||||||
|
f32 temp_f27 = 0.0f;
|
||||||
|
f32 temp_f29 = 480.0f;
|
||||||
|
|
||||||
|
sp18.a = __OSf32tou8(lbl_1_bss_30);
|
||||||
|
GXInvalidateTexAll();
|
||||||
|
GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0);
|
||||||
|
C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f);
|
||||||
|
GXSetProjection(sp50, GX_ORTHOGRAPHIC);
|
||||||
|
PSMTXIdentity(sp20);
|
||||||
|
GXLoadPosMtxImm(sp20, 0);
|
||||||
|
GXSetCurrentMtx(0);
|
||||||
|
GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f);
|
||||||
|
GXSetScissor(0, 0, temp_f30, (1.0f + temp_f29));
|
||||||
|
GXClearVtxDesc();
|
||||||
|
GXSetNumTexGens(0);
|
||||||
|
GXSetNumTevStages(1);
|
||||||
|
GXSetNumChans(1);
|
||||||
|
GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||||
|
GXSetChanCtrl(GX_COLOR0, 1, GX_SRC_REG, GX_SRC_REG, 1, GX_DF_CLAMP, GX_AF_NONE);
|
||||||
|
GXSetChanCtrl(GX_ALPHA0, 0, GX_SRC_REG, GX_SRC_REG, 1, GX_DF_NONE, GX_AF_NONE);
|
||||||
|
GXSetChanAmbColor(GX_COLOR0A0, sp18);
|
||||||
|
GXSetChanMatColor(GX_COLOR0A0, sp18);
|
||||||
|
GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1);
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_INVDSTCLR, GX_BL_SRCALPHA, GX_LO_NOOP);
|
||||||
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||||
|
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_S, GX_RGBX8, 0);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
|
||||||
|
GXSetZMode(1, GX_LEQUAL, 0);
|
||||||
|
GXSetAlphaUpdate(1);
|
||||||
|
GXSetColorUpdate(1);
|
||||||
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||||
|
GXPosition2u16(temp_f28, temp_f27);
|
||||||
|
GXPosition2f32(0.0f, 0.0f);
|
||||||
|
GXPosition2u16(temp_f30, temp_f27);
|
||||||
|
GXPosition2f32(1.0f, 0.0f);
|
||||||
|
GXPosition2u16(temp_f30, temp_f29);
|
||||||
|
GXPosition2f32(1.0f, 1.0f);
|
||||||
|
GXPosition2u16(temp_f28, temp_f29);
|
||||||
|
GXPosition2f32(0.0f, 1.0f);
|
||||||
|
GXSetChanMatColor(GX_COLOR0A0, sp1C);
|
||||||
|
}
|
||||||
|
|
||||||
|
f32 const padStatue = 0.0f;
|
||||||
|
|
@ -56,7 +56,7 @@ void fn_1_C20(void) {
|
||||||
BoardModelPosSetV(lbl_1_bss_1E, &sp14);
|
BoardModelPosSetV(lbl_1_bss_1E, &sp14);
|
||||||
BoardCameraRotGet(&sp8);
|
BoardCameraRotGet(&sp8);
|
||||||
PSMTXRotRad(sp20, 'y', 0.2617994f);
|
PSMTXRotRad(sp20, 'y', 0.2617994f);
|
||||||
BoardModelMtxSet(lbl_1_bss_1E, sp20);
|
BoardModelMtxSet(lbl_1_bss_1E, &sp20);
|
||||||
BoardModelRotSet(lbl_1_bss_1E, sp8.x, 0.0f, 0.0f);
|
BoardModelRotSet(lbl_1_bss_1E, sp8.x, 0.0f, 0.0f);
|
||||||
BoardModelScaleSet(lbl_1_bss_1E, 0.2f, 0.2f, 0.2f);
|
BoardModelScaleSet(lbl_1_bss_1E, 0.2f, 0.2f, 0.2f);
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
|
|
|
||||||
|
|
@ -124,13 +124,13 @@ void BoardCreate(void) {
|
||||||
BoardModelVisibilitySet(lbl_1_bss_10[0], 0);
|
BoardModelVisibilitySet(lbl_1_bss_10[0], 0);
|
||||||
lbl_1_bss_0->unk8 = BoardModelCreate(0x7000A, NULL, 0);
|
lbl_1_bss_0->unk8 = BoardModelCreate(0x7000A, NULL, 0);
|
||||||
BoardModelVisibilitySet(lbl_1_bss_0->unk8, 0);
|
BoardModelVisibilitySet(lbl_1_bss_0->unk8, 0);
|
||||||
BoardSpaceWalkEventFuncSet(&fn_1_90C);
|
BoardSpaceWalkEventFuncSet((void*)&fn_1_90C);
|
||||||
BoardSpaceWalkMiniEventFuncSet(&fn_1_91C);
|
BoardSpaceWalkMiniEventFuncSet((void*)&fn_1_91C);
|
||||||
BoardSpaceLandEventFuncSet(&fn_1_908);
|
BoardSpaceLandEventFuncSet((void*)&fn_1_908);
|
||||||
fn_80083EDC(lbl_1_data_2C);
|
BoardStarHostSet(lbl_1_data_2C);
|
||||||
fn_800A4F6C(lbl_1_data_32);
|
BoardBooHouseHostSet(lbl_1_data_32);
|
||||||
fn_80077AAC(lbl_1_data_2E);
|
BoardShopHostSet(lbl_1_data_2E);
|
||||||
fn_8007A83C(lbl_1_data_30);
|
BoardLotteryHostSet(lbl_1_data_30);
|
||||||
HuWinMesMaxSizeGet(1, spC, 0x2E003A);
|
HuWinMesMaxSizeGet(1, spC, 0x2E003A);
|
||||||
lbl_1_bss_E = HuWinCreate(-10000.0f, 390.0f, spC[0], spC[1], 1);
|
lbl_1_bss_E = HuWinCreate(-10000.0f, 390.0f, spC[0], spC[1], 1);
|
||||||
HuWinMesSet(lbl_1_bss_E, 0x2E003A);
|
HuWinMesSet(lbl_1_bss_E, 0x2E003A);
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ void fn_1_1134(void) {
|
||||||
fn_1_1E3C(7, 0x122, 0x8C);
|
fn_1_1E3C(7, 0x122, 0x8C);
|
||||||
fn_1_BA0(0x2E0017);
|
fn_1_BA0(0x2E0017);
|
||||||
fn_1_1FB0();
|
fn_1_1FB0();
|
||||||
fn_80082AAC(1);
|
BoardCharWheelSetTarget(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_1178(void) {
|
void fn_1_1178(void) {
|
||||||
|
|
@ -176,7 +176,7 @@ void fn_1_13A4(void) {
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
GWPlayer[i].color = 1;
|
GWPlayer[i].color = 1;
|
||||||
}
|
}
|
||||||
fn_800A4C88();
|
BoardMGSetupTutorialExec();
|
||||||
BoardStatusShowSetAll(0);
|
BoardStatusShowSetAll(0);
|
||||||
fn_1_C10(0);
|
fn_1_C10(0);
|
||||||
fn_1_BA0(0x2E002B);
|
fn_1_BA0(0x2E002B);
|
||||||
|
|
@ -188,7 +188,7 @@ void fn_1_13A4(void) {
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
fn_1_BA0(0x2E002C);
|
fn_1_BA0(0x2E002C);
|
||||||
fn_8007A360(temp_r3_2);
|
BoardShopTutorialExec(temp_r3_2);
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
temp_r3_2 = BoardSpaceFlagSearch(0, 0x10000000);
|
temp_r3_2 = BoardSpaceFlagSearch(0, 0x10000000);
|
||||||
|
|
@ -197,7 +197,7 @@ void fn_1_13A4(void) {
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
fn_1_BA0(0x2E002E);
|
fn_1_BA0(0x2E002E);
|
||||||
fn_8007F894();
|
BoardLotteryTutorialExec();
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
temp_r3_2 = BoardSpaceFlagSearch(0, 0x08000000);
|
temp_r3_2 = BoardSpaceFlagSearch(0, 0x08000000);
|
||||||
|
|
@ -206,7 +206,7 @@ void fn_1_13A4(void) {
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
fn_1_BA0(0x2E0030);
|
fn_1_BA0(0x2E0030);
|
||||||
fn_800A6B10();
|
BoardBooHouseTutorialExec();
|
||||||
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
BoardCameraMotionStartEx(lbl_1_bss_0->unk8, &sp8, NULL, 3200.0f, -1.0f, 30);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
fn_1_BA0(0x2E0032);
|
fn_1_BA0(0x2E0032);
|
||||||
|
|
@ -227,7 +227,7 @@ void fn_1_13A4(void) {
|
||||||
fn_1_BA0(0x2E0039);
|
fn_1_BA0(0x2E0039);
|
||||||
if (lbl_1_bss_C == 0) {
|
if (lbl_1_bss_C == 0) {
|
||||||
lbl_1_bss_C = 1;
|
lbl_1_bss_C = 1;
|
||||||
fn_80070EE8(0, 0x1F3);
|
BoardAudSeqFadeOut(0, 0x1F3);
|
||||||
BoardKill();
|
BoardKill();
|
||||||
}
|
}
|
||||||
BoardTutorialHookSet(NULL);
|
BoardTutorialHookSet(NULL);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include "REL/w10Dll.h"
|
#include "REL/w10Dll.h"
|
||||||
|
#include "game/esprite.h"
|
||||||
#include "game/pad.h"
|
#include "game/pad.h"
|
||||||
#include "game/data.h"
|
#include "game/data.h"
|
||||||
#include "game/wipe.h"
|
#include "game/wipe.h"
|
||||||
|
|
@ -152,7 +153,7 @@ void fn_1_1984(void) {
|
||||||
if (i != 4) {
|
if (i != 4) {
|
||||||
lbl_1_bss_C = 1;
|
lbl_1_bss_C = 1;
|
||||||
OSReport(lbl_1_data_98);
|
OSReport(lbl_1_data_98);
|
||||||
fn_80070EE8(0, 0x1F3);
|
BoardAudSeqFadeOut(0, 0x1F3);
|
||||||
BoardKill();
|
BoardKill();
|
||||||
BoardTutorialHookSet(NULL);
|
BoardTutorialHookSet(NULL);
|
||||||
}
|
}
|
||||||
|
|
@ -181,7 +182,7 @@ int fn_1_1AAC(s16 arg0, s32 arg1) {
|
||||||
if (i != 4) {
|
if (i != 4) {
|
||||||
lbl_1_bss_C = 1;
|
lbl_1_bss_C = 1;
|
||||||
OSReport(lbl_1_data_98);
|
OSReport(lbl_1_data_98);
|
||||||
fn_80070EE8(0, 0x1F3);
|
BoardAudSeqFadeOut(0, 0x1F3);
|
||||||
BoardKill();
|
BoardKill();
|
||||||
BoardTutorialHookSet(NULL);
|
BoardTutorialHookSet(NULL);
|
||||||
}
|
}
|
||||||
|
|
@ -197,7 +198,7 @@ int fn_1_1AAC(s16 arg0, s32 arg1) {
|
||||||
lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6);
|
lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6);
|
||||||
if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) {
|
if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) {
|
||||||
if (arg0 == 5) {
|
if (arg0 == 5) {
|
||||||
fn_8008831C(&lbl_1_data_C6[lbl_1_bss_0->unk4++]);
|
BoardRollTutorialSet(&lbl_1_data_C6[lbl_1_bss_0->unk4++]);
|
||||||
}
|
}
|
||||||
if (arg0 == lbl_1_data_108[lbl_1_bss_0->unk0].unk0) {
|
if (arg0 == lbl_1_data_108[lbl_1_bss_0->unk0].unk0) {
|
||||||
void (*temp_r3_3)() = lbl_1_data_108[lbl_1_bss_0->unk0++].unk4;
|
void (*temp_r3_3)() = lbl_1_data_108[lbl_1_bss_0->unk0++].unk4;
|
||||||
|
|
|
||||||
174
src/game/ClusterExec.c
Normal file
174
src/game/ClusterExec.c
Normal file
|
|
@ -0,0 +1,174 @@
|
||||||
|
#include "game/ClusterExec.h"
|
||||||
|
#include "game/EnvelopeExec.h"
|
||||||
|
#include "game/hsfmotion.h"
|
||||||
|
|
||||||
|
float GetClusterCurve(HsfTrack *arg0, float arg1) {
|
||||||
|
float *var_r30;
|
||||||
|
|
||||||
|
switch (arg0->curveType) {
|
||||||
|
case 1:
|
||||||
|
return GetLinear(arg0->numKeyframes, arg0->data, arg1);
|
||||||
|
case 2:
|
||||||
|
return GetBezier(arg0->numKeyframes, arg0, arg1);
|
||||||
|
case 4:
|
||||||
|
var_r30 = &arg0->value;
|
||||||
|
return *var_r30;
|
||||||
|
}
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetClusterWeightCurve(HsfTrack *arg0, float arg1) {
|
||||||
|
float *var_r30;
|
||||||
|
|
||||||
|
switch (arg0->curveType) {
|
||||||
|
case 1:
|
||||||
|
return GetLinear(arg0->numKeyframes, arg0->data, arg1);
|
||||||
|
case 2:
|
||||||
|
return GetBezier(arg0->numKeyframes, arg0, arg1);
|
||||||
|
case 4:
|
||||||
|
var_r30 = &arg0->value;
|
||||||
|
return *var_r30;
|
||||||
|
}
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetClusterMain(HsfCluster *arg0) {
|
||||||
|
float var_f30;
|
||||||
|
float var_f31;
|
||||||
|
s32 temp_r24;
|
||||||
|
s32 temp_r29;
|
||||||
|
u16 *var_r28;
|
||||||
|
s32 var_r23;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
HsfBuffer *temp_r25;
|
||||||
|
HsfPart *temp_r27;
|
||||||
|
HsfBuffer *temp_r30;
|
||||||
|
|
||||||
|
temp_r27 = arg0->part;
|
||||||
|
if (arg0->vertexCnt != 0) {
|
||||||
|
if (arg0->type == 2) {
|
||||||
|
var_r28 = temp_r27->vertex;
|
||||||
|
temp_r30 = *arg0->vertex;
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
for (i = 0; i < arg0->vertexCnt; i++) {
|
||||||
|
var_f30 += arg0->unk14[i];
|
||||||
|
}
|
||||||
|
for (i = 0; i < temp_r27->count; i++, var_r28++) {
|
||||||
|
temp_r29 = *var_r28;
|
||||||
|
Vertextop[temp_r29].x = ((Vec*) temp_r30->data)[i].x;
|
||||||
|
Vertextop[temp_r29].y = ((Vec*) temp_r30->data)[i].y;
|
||||||
|
Vertextop[temp_r29].z = ((Vec*) temp_r30->data)[i].z;
|
||||||
|
}
|
||||||
|
for (i = 1; i < arg0->vertexCnt; i++) {
|
||||||
|
temp_r30 = arg0->vertex[i];
|
||||||
|
var_r28 = temp_r27->vertex;
|
||||||
|
var_f31 = arg0->unk14[i];
|
||||||
|
if (var_f31 < 0.0f) {
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
} else if (var_f30 > 1.0f) {
|
||||||
|
var_f31 /= var_f30;
|
||||||
|
}
|
||||||
|
for (j = 0; j < temp_r27->count; j++, var_r28++) {
|
||||||
|
temp_r29 = *var_r28;
|
||||||
|
Vertextop[temp_r29].x += var_f31 * (((Vec*) temp_r30->data)[j].x - Vertextop[temp_r29].x);
|
||||||
|
Vertextop[temp_r29].y += var_f31 * (((Vec*) temp_r30->data)[j].y - Vertextop[temp_r29].y);
|
||||||
|
Vertextop[temp_r29].z += var_f31 * (((Vec*) temp_r30->data)[j].z - Vertextop[temp_r29].z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
temp_r24 = arg0->unk10;
|
||||||
|
var_r23 = temp_r24 + 1;
|
||||||
|
if (var_r23 >= arg0->vertexCnt) {
|
||||||
|
var_r23 = temp_r24;
|
||||||
|
}
|
||||||
|
var_f31 = arg0->unk10 - temp_r24;
|
||||||
|
temp_r30 = arg0->vertex[temp_r24];
|
||||||
|
temp_r25 = arg0->vertex[var_r23];
|
||||||
|
var_r28 = temp_r27->vertex;
|
||||||
|
for (i = 0; i < temp_r27->count; i++, var_r28++) {
|
||||||
|
temp_r29 = *var_r28;
|
||||||
|
Vertextop[temp_r29].x = ((Vec*) temp_r30->data)[i].x + var_f31 * (((Vec*) temp_r25->data)[i].x - ((Vec*) temp_r30->data)[i].x);
|
||||||
|
Vertextop[temp_r29].y = ((Vec*) temp_r30->data)[i].y + var_f31 * (((Vec*) temp_r25->data)[i].y - ((Vec*) temp_r30->data)[i].y);
|
||||||
|
Vertextop[temp_r29].z = ((Vec*) temp_r30->data)[i].z + var_f31 * (((Vec*) temp_r25->data)[i].z - ((Vec*) temp_r30->data)[i].z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClusterProc(ModelData *arg0) {
|
||||||
|
s32 temp_r24;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
s32 k;
|
||||||
|
HsfData *temp_r27;
|
||||||
|
HsfData *temp_r23;
|
||||||
|
MotionData *temp_r22;
|
||||||
|
HsfCluster *var_r29;
|
||||||
|
HsfObject *temp_r31;
|
||||||
|
|
||||||
|
for (i = 0; i < 4; i++) {
|
||||||
|
temp_r24 = arg0->unk_10[i];
|
||||||
|
if (temp_r24 != -1) {
|
||||||
|
temp_r22 = &Hu3DMotion[temp_r24];
|
||||||
|
temp_r27 = temp_r22->unk_04;
|
||||||
|
temp_r23 = arg0->hsfData;
|
||||||
|
var_r29 = temp_r27->cluster;
|
||||||
|
for (j = 0; j < temp_r27->clusterCnt; j++, var_r29++) {
|
||||||
|
if (var_r29->target != -1) {
|
||||||
|
temp_r31 = temp_r23->object;
|
||||||
|
temp_r31 += var_r29->target;
|
||||||
|
Vertextop = temp_r31->data.vertex->data;
|
||||||
|
if (temp_r31->data.hook) {
|
||||||
|
for (k = 0; k < temp_r31->data.vertex->count; k++) {
|
||||||
|
Vertextop[k].x = ((Vec*) temp_r31->data.file[0])[k].x;
|
||||||
|
Vertextop[k].y = ((Vec*) temp_r31->data.file[0])[k].y;
|
||||||
|
Vertextop[k].z = ((Vec*) temp_r31->data.file[0])[k].z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetClusterMain(var_r29);
|
||||||
|
DCStoreRangeNoSync(Vertextop, temp_r31->data.vertex->count * sizeof(Vec));
|
||||||
|
temp_r31->data.unk120[0]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClusterMotionExec(ModelData *arg0) {
|
||||||
|
float temp_f31;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
s16 var_r20;
|
||||||
|
HsfCluster *temp_r26;
|
||||||
|
HsfData *temp_r28;
|
||||||
|
HsfMotion *temp_r27;
|
||||||
|
HsfTrack *var_r31;
|
||||||
|
HsfTrack *var_r30;
|
||||||
|
MotionData *var_r23;
|
||||||
|
|
||||||
|
var_r31 = temp_r27->track;
|
||||||
|
for (i = 0; i < 4; i++) {
|
||||||
|
if (arg0->unk_10[i] != -1) {
|
||||||
|
var_r20 = arg0->unk_10[i];
|
||||||
|
var_r23 = &Hu3DMotion[var_r20];
|
||||||
|
temp_r28 = var_r23->unk_04;
|
||||||
|
temp_r27 = temp_r28->motion;
|
||||||
|
var_r31 = temp_r27->track;
|
||||||
|
temp_f31 = arg0->unk_A4[i];
|
||||||
|
for (j = 0; j < temp_r27->numTracks; j++, var_r31++) {
|
||||||
|
switch (var_r31->type) {
|
||||||
|
case 5:
|
||||||
|
temp_r26 = &temp_r28->cluster[var_r31->target_s16];
|
||||||
|
temp_r26->unk10 = GetClusterCurve(var_r31, temp_f31);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
var_r30 = var_r31;
|
||||||
|
temp_r26 = &temp_r28->cluster[var_r30->target_s16];
|
||||||
|
temp_r26->unk14[var_r30->unk04] = GetClusterCurve(var_r30, temp_f31);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
463
src/game/EnvelopeExec.c
Normal file
463
src/game/EnvelopeExec.c
Normal file
|
|
@ -0,0 +1,463 @@
|
||||||
|
#include "game/EnvelopeExec.h"
|
||||||
|
#include "game/hsfex.h"
|
||||||
|
|
||||||
|
#include "string.h"
|
||||||
|
|
||||||
|
static void SetEnvelopMtx(HsfObject *arg0, HsfObject *arg1, Mtx arg2);
|
||||||
|
static void SetEnvelopMain(HsfData *arg0);
|
||||||
|
static void SetEnvelop(HsfCenv *arg0);
|
||||||
|
static void SetMtx(HsfObject *arg0, Mtx arg1);
|
||||||
|
static void SetRevMtx(void);
|
||||||
|
static HsfSkeleton *SearchSklenton(char *arg0);
|
||||||
|
|
||||||
|
Vec *Vertextop;
|
||||||
|
Mtx *MtxTop;
|
||||||
|
static u32 nObj;
|
||||||
|
static u32 nMesh;
|
||||||
|
static HsfObject *objtop;
|
||||||
|
static HsfData *CurHsf;
|
||||||
|
static Vec *vtxenv;
|
||||||
|
static Vec *normenv;
|
||||||
|
static Vec *normtop;
|
||||||
|
static s32 Meshcnt;
|
||||||
|
static s32 Meshno;
|
||||||
|
|
||||||
|
void InitEnvelope(HsfData *arg0) {
|
||||||
|
HsfBuffer *spC;
|
||||||
|
HsfBuffer *sp8;
|
||||||
|
HsfMatrix *temp_r28;
|
||||||
|
HsfObject *var_r31;
|
||||||
|
HsfSkeleton *var_r30;
|
||||||
|
Mtx sp10;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
|
||||||
|
if (arg0->cenvCnt != 0) {
|
||||||
|
var_r31 = arg0->object;
|
||||||
|
for (Meshcnt = i = 0; i < arg0->objectCnt; i++, var_r31++) {
|
||||||
|
if (var_r31->type == 2) {
|
||||||
|
if (var_r31->data.file[0]) {
|
||||||
|
spC = var_r31->data.vertex;
|
||||||
|
sp8 = var_r31->data.normal;
|
||||||
|
Meshcnt++;
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r30 = arg0->skeleton;
|
||||||
|
for (j = 0; j < arg0->skeletonCnt; j++, var_r30++) {
|
||||||
|
if (strcmp(var_r31->name, var_r30->name) == 0) {
|
||||||
|
var_r31->data.base.pos.x = var_r30->transform.pos.x;
|
||||||
|
var_r31->data.base.pos.y = var_r30->transform.pos.y;
|
||||||
|
var_r31->data.base.pos.z = var_r30->transform.pos.z;
|
||||||
|
var_r31->data.base.rot.x = var_r30->transform.rot.x;
|
||||||
|
var_r31->data.base.rot.y = var_r30->transform.rot.y;
|
||||||
|
var_r31->data.base.rot.z = var_r30->transform.rot.z;
|
||||||
|
var_r31->data.base.scale.x = var_r30->transform.scale.x;
|
||||||
|
var_r31->data.base.scale.y = var_r30->transform.scale.y;
|
||||||
|
var_r31->data.base.scale.z = var_r30->transform.scale.z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r31->data.curr.pos.x = var_r31->data.base.pos.x;
|
||||||
|
var_r31->data.curr.pos.y = var_r31->data.base.pos.y;
|
||||||
|
var_r31->data.curr.pos.z = var_r31->data.base.pos.z;
|
||||||
|
var_r31->data.curr.rot.x = var_r31->data.base.rot.x;
|
||||||
|
var_r31->data.curr.rot.y = var_r31->data.base.rot.y;
|
||||||
|
var_r31->data.curr.rot.z = var_r31->data.base.rot.z;
|
||||||
|
var_r31->data.curr.scale.x = var_r31->data.base.scale.x;
|
||||||
|
var_r31->data.curr.scale.y = var_r31->data.base.scale.y;
|
||||||
|
var_r31->data.curr.scale.z = var_r31->data.base.scale.z;
|
||||||
|
}
|
||||||
|
CurHsf = arg0;
|
||||||
|
objtop = arg0->object;
|
||||||
|
temp_r28 = CurHsf->matrix;
|
||||||
|
if (temp_r28) {
|
||||||
|
MtxTop = temp_r28->data;
|
||||||
|
nObj = temp_r28->count;
|
||||||
|
nMesh = temp_r28->base_idx;
|
||||||
|
}
|
||||||
|
PSMTXIdentity(sp10);
|
||||||
|
SetMtx(arg0->root, sp10);
|
||||||
|
SetRevMtx();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetEnvelopMtx(HsfObject *arg0, HsfObject *arg1, Mtx arg2) {
|
||||||
|
Mtx sp6C;
|
||||||
|
Mtx sp3C;
|
||||||
|
Mtx spC;
|
||||||
|
s32 var_r29;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
PSMTXTrans(spC, arg1->data.curr.pos.x, arg1->data.curr.pos.y, arg1->data.curr.pos.z);
|
||||||
|
PSMTXConcat(arg2, spC, sp3C);
|
||||||
|
if (arg1->data.curr.rot.z) {
|
||||||
|
PSMTXRotRad(sp6C, 'z', MTXDegToRad(arg1->data.curr.rot.z));
|
||||||
|
PSMTXConcat(sp3C, sp6C, sp3C);
|
||||||
|
}
|
||||||
|
if (arg1->data.curr.rot.y) {
|
||||||
|
PSMTXRotRad(sp6C, 'y', MTXDegToRad(arg1->data.curr.rot.y));
|
||||||
|
PSMTXConcat(sp3C, sp6C, sp3C);
|
||||||
|
}
|
||||||
|
if (arg1->data.curr.rot.x) {
|
||||||
|
PSMTXRotRad(sp6C, 'x', MTXDegToRad(arg1->data.curr.rot.x));
|
||||||
|
PSMTXConcat(sp3C, sp6C, sp3C);
|
||||||
|
}
|
||||||
|
if (arg1->data.curr.scale.x != 1.0f) {
|
||||||
|
sp3C[0][0] *= arg1->data.curr.scale.x;
|
||||||
|
sp3C[1][0] *= arg1->data.curr.scale.x;
|
||||||
|
sp3C[2][0] *= arg1->data.curr.scale.x;
|
||||||
|
}
|
||||||
|
if (arg1->data.curr.scale.y != 1.0f) {
|
||||||
|
sp3C[0][1] *= arg1->data.curr.scale.y;
|
||||||
|
sp3C[1][1] *= arg1->data.curr.scale.y;
|
||||||
|
sp3C[2][1] *= arg1->data.curr.scale.y;
|
||||||
|
}
|
||||||
|
if (arg1->data.curr.scale.z != 1.0f) {
|
||||||
|
sp3C[0][2] *= arg1->data.curr.scale.z;
|
||||||
|
sp3C[1][2] *= arg1->data.curr.scale.z;
|
||||||
|
sp3C[2][2] *= arg1->data.curr.scale.z;
|
||||||
|
}
|
||||||
|
var_r29 = arg1 - arg0;
|
||||||
|
PSMTXCopy(sp3C, MtxTop[nMesh + var_r29]);
|
||||||
|
for (i = 0; i < arg1->data.childrenCount; i++) {
|
||||||
|
SetEnvelopMtx(arg0, arg1->data.children[i], sp3C);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnvelopeProc(HsfData *arg0) {
|
||||||
|
HsfMatrix *temp_r31;
|
||||||
|
HsfObject *temp_r29;
|
||||||
|
Mtx sp8;
|
||||||
|
|
||||||
|
CurHsf = arg0;
|
||||||
|
temp_r31 = CurHsf->matrix;
|
||||||
|
MtxTop = temp_r31->data;
|
||||||
|
nObj = temp_r31->count;
|
||||||
|
nMesh = temp_r31->base_idx;
|
||||||
|
temp_r29 = arg0->root;
|
||||||
|
PSMTXIdentity(sp8);
|
||||||
|
SetEnvelopMtx(arg0->object, temp_r29, sp8);
|
||||||
|
SetEnvelopMain(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitVtxParm(HsfData *arg0) {
|
||||||
|
HsfObject *var_r31;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
var_r31 = arg0->object;
|
||||||
|
for (i = 0; i < arg0->objectCnt; i++, var_r31++) {
|
||||||
|
if (var_r31->type == 2) {
|
||||||
|
var_r31->data.unk120[0] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetEnvelopMain(HsfData *arg0) {
|
||||||
|
void *sp10;
|
||||||
|
void *spC;
|
||||||
|
void *sp8;
|
||||||
|
HsfBuffer *temp_r28;
|
||||||
|
HsfBuffer *temp_r30;
|
||||||
|
HsfObject *var_r31;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
HsfCenv *var_r25;
|
||||||
|
|
||||||
|
var_r31 = arg0->object;
|
||||||
|
for (Meshno = i = 0; i < arg0->objectCnt; i++, var_r31++) {
|
||||||
|
if (var_r31->type == 2) {
|
||||||
|
PSMTXInverse(MtxTop[&var_r31[nMesh] - arg0->object], MtxTop[Meshno]);
|
||||||
|
temp_r30 = var_r31->data.vertex;
|
||||||
|
temp_r28 = var_r31->data.normal;
|
||||||
|
if (var_r31->data.unk120[0] != 0) {
|
||||||
|
Vertextop = temp_r30->data;
|
||||||
|
} else {
|
||||||
|
Vertextop = var_r31->data.file[0];
|
||||||
|
}
|
||||||
|
vtxenv = temp_r30->data;
|
||||||
|
normtop = var_r31->data.file[1];
|
||||||
|
normenv = temp_r28->data;
|
||||||
|
var_r25 = var_r31->data.cenv;
|
||||||
|
for (j = 0; j < var_r31->data.hook; j++, var_r25++) {
|
||||||
|
SetEnvelop(var_r25);
|
||||||
|
}
|
||||||
|
sp10 = temp_r30->data;
|
||||||
|
spC = var_r31->data.file[0];
|
||||||
|
sp8 = temp_r30->data;
|
||||||
|
DCStoreRangeNoSync(normenv, temp_r28->count * sizeof(Vec));
|
||||||
|
DCStoreRangeNoSync(vtxenv, temp_r30->count * sizeof(Vec));
|
||||||
|
Meshno++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetEnvelop(HsfCenv *arg0) {
|
||||||
|
Vec sp44;
|
||||||
|
Vec sp38;
|
||||||
|
Vec sp2C;
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
s32 sp10;
|
||||||
|
u32 spC;
|
||||||
|
u32 sp8;
|
||||||
|
HsfCenvDual *var_r20;
|
||||||
|
HsfCenvDualWeight *var_r30;
|
||||||
|
HsfCenvMulti *var_r19;
|
||||||
|
HsfCenvMultiWeight *var_r25;
|
||||||
|
HsfCenvSingle *var_r27;
|
||||||
|
Vec *temp_r22;
|
||||||
|
Vec *temp_r26;
|
||||||
|
Vec *temp_r28;
|
||||||
|
Vec *temp_r31;
|
||||||
|
float temp_f31;
|
||||||
|
MtxPtr var_r29;
|
||||||
|
s32 temp_r18;
|
||||||
|
s32 temp_r21;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
Mtx sp1A0;
|
||||||
|
Mtx sp170;
|
||||||
|
Mtx sp140;
|
||||||
|
Mtx sp110;
|
||||||
|
Mtx spE0;
|
||||||
|
Mtx spB0;
|
||||||
|
Mtx sp80;
|
||||||
|
Mtx sp50;
|
||||||
|
|
||||||
|
var_r27 = arg0->singleData;
|
||||||
|
for (i = 0; i < arg0->singleCount; i++, var_r27++) {
|
||||||
|
temp_r18 = var_r27->normal;
|
||||||
|
temp_r21 = var_r27->pos;
|
||||||
|
temp_r28 = &vtxenv[temp_r21];
|
||||||
|
temp_r31 = &Vertextop[temp_r21];
|
||||||
|
temp_r22 = &normenv[temp_r18];
|
||||||
|
temp_r26 = &normtop[temp_r18];
|
||||||
|
PSMTXConcat(MtxTop[nMesh + var_r27->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r27->target], sp140);
|
||||||
|
PSMTXConcat(MtxTop[Meshno], sp140, sp1A0);
|
||||||
|
Hu3DMtxScaleGet(&sp1A0[0], &sp14);
|
||||||
|
if (sp14.x != 1.0f || sp14.y != 1.0f || sp14.z != 1.0f) {
|
||||||
|
PSMTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z);
|
||||||
|
PSMTXConcat(spE0, sp1A0, sp170);
|
||||||
|
PSMTXInvXpose(sp170, sp170);
|
||||||
|
} else {
|
||||||
|
PSMTXInvXpose(sp1A0, sp170);
|
||||||
|
}
|
||||||
|
if (var_r27->posCnt == 1) {
|
||||||
|
PSMTXMultVec(sp1A0, temp_r31, temp_r28);
|
||||||
|
PSMTXMultVec(sp170, temp_r26, temp_r22);
|
||||||
|
} else if (var_r27->posCnt <= 6) {
|
||||||
|
PSMTXMultVecArray(sp1A0, temp_r31, temp_r28, var_r27->posCnt);
|
||||||
|
PSMTXMultVecArray(sp170, temp_r26, temp_r22, var_r27->normalCnt);
|
||||||
|
} else {
|
||||||
|
PSMTXReorder(sp1A0, (ROMtxPtr) sp140);
|
||||||
|
PSMTXReorder(sp170, (ROMtxPtr) sp110);
|
||||||
|
PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r27->posCnt);
|
||||||
|
PSMTXROMultVecArray((ROMtxPtr) sp110, temp_r26, temp_r22, var_r27->normalCnt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r20 = arg0->dualData;
|
||||||
|
for (i = 0; i < arg0->dualCount; i++, var_r20++) {
|
||||||
|
spC = var_r20->target1;
|
||||||
|
sp8 = var_r20->target2;
|
||||||
|
PSMTXConcat(MtxTop[nMesh + spC], MtxTop[nMesh + nObj + nObj * Meshno + spC], sp140);
|
||||||
|
PSMTXConcat(MtxTop[Meshno], sp140, sp1A0);
|
||||||
|
PSMTXConcat(MtxTop[nMesh + sp8], MtxTop[nMesh + nObj + nObj * Meshno + sp8], sp140);
|
||||||
|
PSMTXConcat(MtxTop[Meshno], sp140, (float (*)[4]) &spB0[0]);
|
||||||
|
var_r30 = var_r20->weight;
|
||||||
|
for (j = 0; j < var_r20->weightCnt; j++, var_r30++) {
|
||||||
|
temp_r18 = var_r30->normal;
|
||||||
|
temp_r21 = var_r30->pos;
|
||||||
|
temp_r28 = &vtxenv[temp_r21];
|
||||||
|
temp_r31 = &Vertextop[temp_r21];
|
||||||
|
temp_r22 = &normenv[temp_r18];
|
||||||
|
temp_r26 = &normtop[temp_r18];
|
||||||
|
temp_f31 = var_r30->weight;
|
||||||
|
sp140[0][0] = sp1A0[0][0] * temp_f31;
|
||||||
|
sp140[1][0] = sp1A0[1][0] * temp_f31;
|
||||||
|
sp140[2][0] = sp1A0[2][0] * temp_f31;
|
||||||
|
sp140[0][1] = sp1A0[0][1] * temp_f31;
|
||||||
|
sp140[1][1] = sp1A0[1][1] * temp_f31;
|
||||||
|
sp140[2][1] = sp1A0[2][1] * temp_f31;
|
||||||
|
sp140[0][2] = sp1A0[0][2] * temp_f31;
|
||||||
|
sp140[1][2] = sp1A0[1][2] * temp_f31;
|
||||||
|
sp140[2][2] = sp1A0[2][2] * temp_f31;
|
||||||
|
sp140[0][3] = sp1A0[0][3] * temp_f31;
|
||||||
|
sp140[1][3] = sp1A0[1][3] * temp_f31;
|
||||||
|
sp140[2][3] = sp1A0[2][3] * temp_f31;
|
||||||
|
temp_f31 = 1.0f - var_r30->weight;
|
||||||
|
sp110[0][0] = spB0[0][0] * temp_f31;
|
||||||
|
sp110[1][0] = spB0[1][0] * temp_f31;
|
||||||
|
sp110[2][0] = spB0[2][0] * temp_f31;
|
||||||
|
sp110[0][1] = spB0[0][1] * temp_f31;
|
||||||
|
sp110[1][1] = spB0[1][1] * temp_f31;
|
||||||
|
sp110[2][1] = spB0[2][1] * temp_f31;
|
||||||
|
sp110[0][2] = spB0[0][2] * temp_f31;
|
||||||
|
sp110[1][2] = spB0[1][2] * temp_f31;
|
||||||
|
sp110[2][2] = spB0[2][2] * temp_f31;
|
||||||
|
sp110[0][3] = spB0[0][3] * temp_f31;
|
||||||
|
sp110[1][3] = spB0[1][3] * temp_f31;
|
||||||
|
sp110[2][3] = spB0[2][3] * temp_f31;
|
||||||
|
if (sp80 == sp110 || sp80 == sp140) {
|
||||||
|
var_r29 = sp50;
|
||||||
|
} else {
|
||||||
|
var_r29 = sp80;
|
||||||
|
}
|
||||||
|
var_r29[0][0] = sp110[0][0] + sp140[0][0];
|
||||||
|
var_r29[0][1] = sp110[0][1] + sp140[0][1];
|
||||||
|
var_r29[0][2] = sp110[0][2] + sp140[0][2];
|
||||||
|
var_r29[0][3] = sp110[0][3] + sp140[0][3];
|
||||||
|
var_r29[1][0] = sp110[1][0] + sp140[1][0];
|
||||||
|
var_r29[1][1] = sp110[1][1] + sp140[1][1];
|
||||||
|
var_r29[1][2] = sp110[1][2] + sp140[1][2];
|
||||||
|
var_r29[1][3] = sp110[1][3] + sp140[1][3];
|
||||||
|
var_r29[2][0] = sp110[2][0] + sp140[2][0];
|
||||||
|
var_r29[2][1] = sp110[2][1] + sp140[2][1];
|
||||||
|
var_r29[2][2] = sp110[2][2] + sp140[2][2];
|
||||||
|
var_r29[2][3] = sp110[2][3] + sp140[2][3];
|
||||||
|
if (var_r29 == sp50) {
|
||||||
|
PSMTXCopy(sp50, sp80);
|
||||||
|
}
|
||||||
|
Hu3DMtxScaleGet(&sp80[0], &sp14);
|
||||||
|
if (sp14.x != 1.0f || sp14.y != 1.0f || sp14.z != 1.0f) {
|
||||||
|
PSMTXScale(spE0, 1.0 / sp14.x, 1.0 / sp14.y, 1.0 / sp14.z);
|
||||||
|
PSMTXConcat(spE0, sp80, sp110);
|
||||||
|
PSMTXInvXpose(sp110, sp110);
|
||||||
|
} else {
|
||||||
|
PSMTXInvXpose(sp80, sp110);
|
||||||
|
}
|
||||||
|
if (var_r30->posCnt == 1) {
|
||||||
|
PSMTXMultVec(sp80, temp_r31, temp_r28);
|
||||||
|
} else if (var_r30->posCnt <= 6) {
|
||||||
|
PSMTXMultVecArray(sp80, temp_r31, temp_r28, var_r30->posCnt);
|
||||||
|
} else {
|
||||||
|
PSMTXReorder(sp80, (ROMtxPtr) sp140);
|
||||||
|
PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r31, temp_r28, var_r30->posCnt);
|
||||||
|
}
|
||||||
|
if (var_r30->normalCnt != 0) {
|
||||||
|
if (var_r30->normalCnt == 1) {
|
||||||
|
PSMTXMultVec(sp110, temp_r26, temp_r22);
|
||||||
|
} else if (var_r30->normalCnt <= 6) {
|
||||||
|
PSMTXMultVecArray(sp110, temp_r26, temp_r22, var_r30->normalCnt);
|
||||||
|
} else {
|
||||||
|
PSMTXReorder(sp110, (ROMtxPtr) sp140);
|
||||||
|
PSMTXROMultVecArray((ROMtxPtr) sp140, temp_r26, temp_r22, var_r30->normalCnt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r19 = arg0->multiData;
|
||||||
|
for (i = 0; i < arg0->multiCount; i++, var_r19++) {
|
||||||
|
var_r25 = var_r19->weight;
|
||||||
|
temp_r18 = var_r19->normal;
|
||||||
|
temp_r21 = var_r19->pos;
|
||||||
|
temp_r28 = &vtxenv[temp_r21];
|
||||||
|
temp_r31 = &Vertextop[temp_r21];
|
||||||
|
temp_r22 = &normenv[temp_r18];
|
||||||
|
temp_r26 = &normtop[temp_r18];
|
||||||
|
sp38.x = sp38.y = sp38.z = 0.0f;
|
||||||
|
sp20.x = sp20.y = sp20.z = 0.0f;
|
||||||
|
sp10 = 0;
|
||||||
|
for (j = 0; j < var_r19->weightCnt; j++, var_r25++) {
|
||||||
|
PSMTXConcat(MtxTop[nMesh + var_r25->target], MtxTop[nMesh + nObj + nObj * Meshno + var_r25->target], sp1A0);
|
||||||
|
PSMTXConcat(MtxTop[Meshno], sp1A0, sp1A0);
|
||||||
|
PSMTXInvXpose(sp1A0, sp170);
|
||||||
|
PSMTXMultVec(sp1A0, temp_r31, &sp44);
|
||||||
|
PSMTXMultVec(sp170, temp_r26, &sp2C);
|
||||||
|
sp44.x = var_r25->value * (sp44.x - temp_r31->x);
|
||||||
|
sp44.y = var_r25->value * (sp44.y - temp_r31->y);
|
||||||
|
sp44.z = var_r25->value * (sp44.z - temp_r31->z);
|
||||||
|
PSVECAdd(&sp38, &sp44, &sp38);
|
||||||
|
sp2C.x = var_r25->value * (sp2C.x - temp_r26->x);
|
||||||
|
sp2C.y = var_r25->value * (sp2C.y - temp_r26->y);
|
||||||
|
sp2C.z = var_r25->value * (sp2C.z - temp_r26->z);
|
||||||
|
PSVECAdd(&sp20, &sp2C, &sp20);
|
||||||
|
}
|
||||||
|
temp_r28->x = temp_r31->x + sp38.x;
|
||||||
|
temp_r28->y = temp_r31->y + sp38.y;
|
||||||
|
temp_r28->z = temp_r31->z + sp38.z;
|
||||||
|
temp_r22->x = temp_r26->x + sp20.x;
|
||||||
|
temp_r22->y = temp_r26->y + sp20.y;
|
||||||
|
temp_r22->z = temp_r26->z + sp20.z;
|
||||||
|
}
|
||||||
|
temp_r21 = arg0->vtxCount;
|
||||||
|
temp_r28 = &vtxenv[temp_r21];
|
||||||
|
temp_r31 = &Vertextop[temp_r21];
|
||||||
|
for (i = 0; i < arg0->copyCount; i++, temp_r28++, temp_r31++) {
|
||||||
|
temp_r28->x = temp_r31->x;
|
||||||
|
temp_r28->y = temp_r31->y;
|
||||||
|
temp_r28->z = temp_r31->z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetMtx(HsfObject *arg0, Mtx arg1) {
|
||||||
|
HsfSkeleton *temp_r3;
|
||||||
|
Mtx spFC;
|
||||||
|
Mtx spCC;
|
||||||
|
Mtx sp9C;
|
||||||
|
s32 temp_r25;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
temp_r3 = SearchSklenton(arg0->name);
|
||||||
|
if (temp_r3) {
|
||||||
|
arg0->data.base.pos.x = temp_r3->transform.pos.x;
|
||||||
|
arg0->data.base.pos.y = temp_r3->transform.pos.y;
|
||||||
|
arg0->data.base.pos.z = temp_r3->transform.pos.z;
|
||||||
|
arg0->data.base.rot.x = temp_r3->transform.rot.x;
|
||||||
|
arg0->data.base.rot.y = temp_r3->transform.rot.y;
|
||||||
|
arg0->data.base.rot.z = temp_r3->transform.rot.z;
|
||||||
|
arg0->data.base.scale.x = temp_r3->transform.scale.x;
|
||||||
|
arg0->data.base.scale.y = temp_r3->transform.scale.y;
|
||||||
|
arg0->data.base.scale.z = temp_r3->transform.scale.z;
|
||||||
|
}
|
||||||
|
PSMTXTrans(spFC, arg0->data.base.pos.x, arg0->data.base.pos.y, arg0->data.base.pos.z);
|
||||||
|
PSMTXScale(spCC, arg0->data.base.scale.x, arg0->data.base.scale.y, arg0->data.base.scale.z);
|
||||||
|
PSMTXConcat(arg1, spFC, spFC);
|
||||||
|
PSMTXRotRad(sp9C, 'z', MTXDegToRad(arg0->data.base.rot.z));
|
||||||
|
PSMTXConcat(spFC, sp9C, spFC);
|
||||||
|
PSMTXRotRad(sp9C, 'y', MTXDegToRad(arg0->data.base.rot.y));
|
||||||
|
PSMTXConcat(spFC, sp9C, spFC);
|
||||||
|
PSMTXRotRad(sp9C, 'x', MTXDegToRad(arg0->data.base.rot.x));
|
||||||
|
PSMTXConcat(spFC, sp9C, spFC);
|
||||||
|
PSMTXConcat(spFC, spCC, spFC);
|
||||||
|
temp_r25 = arg0 - objtop;
|
||||||
|
PSMTXCopy(spFC, MtxTop[nMesh + temp_r25]);
|
||||||
|
for (i = 0; i < arg0->data.childrenCount; i++) {
|
||||||
|
SetMtx(arg0->data.children[i], spFC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetRevMtx(void) {
|
||||||
|
HsfObject *var_r29;
|
||||||
|
s32 var_r28;
|
||||||
|
s32 i;
|
||||||
|
s32 var_r30;
|
||||||
|
Mtx sp38;
|
||||||
|
Mtx sp8;
|
||||||
|
|
||||||
|
var_r29 = CurHsf->object;
|
||||||
|
for (var_r28 = i = 0; i < CurHsf->objectCnt; i++, var_r29++) {
|
||||||
|
if (var_r29->type == 2) {
|
||||||
|
PSMTXCopy(MtxTop[nMesh + i], sp8);
|
||||||
|
for (var_r30 = 0; var_r30 < CurHsf->objectCnt; var_r30++) {
|
||||||
|
PSMTXInverse(MtxTop[nMesh + var_r30], sp38);
|
||||||
|
PSMTXConcat(sp38, sp8, MtxTop[nMesh + nObj + nObj * var_r28 + var_r30]);
|
||||||
|
}
|
||||||
|
PSMTXInverse(MtxTop[nMesh + i], sp8);
|
||||||
|
var_r28++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static HsfSkeleton *SearchSklenton(char *arg0) {
|
||||||
|
HsfSkeleton *var_r31;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
var_r31 = CurHsf->skeleton;
|
||||||
|
for (i = 0; i < CurHsf->skeletonCnt; i++, var_r31++) {
|
||||||
|
if (strcmp(arg0, var_r31->name) == 0) {
|
||||||
|
return var_r31;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
69
src/game/ShapeExec.c
Executable file
69
src/game/ShapeExec.c
Executable file
|
|
@ -0,0 +1,69 @@
|
||||||
|
#include "game/ShapeExec.h"
|
||||||
|
#include "game/EnvelopeExec.h"
|
||||||
|
|
||||||
|
static void SetShapeMain(HsfObject *arg0) {
|
||||||
|
HsfBuffer *temp_r28;
|
||||||
|
HsfBuffer *temp_r30;
|
||||||
|
float var_f30;
|
||||||
|
float var_f31;
|
||||||
|
s32 temp_r27;
|
||||||
|
s32 var_r29;
|
||||||
|
s32 var_r26;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (arg0->data.shapeType == 2) {
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
for (i = 0; i < arg0->data.vertexShapeCnt; i++) {
|
||||||
|
var_f30 += arg0->data.mesh.morphWeight[i];
|
||||||
|
}
|
||||||
|
temp_r30 = *arg0->data.vertexShape;
|
||||||
|
for (i = 0; i < temp_r30->count; i++) {
|
||||||
|
Vertextop[i].x = ((Vec*) temp_r30->data)[i].x;
|
||||||
|
Vertextop[i].y = ((Vec*) temp_r30->data)[i].y;
|
||||||
|
Vertextop[i].z = ((Vec*) temp_r30->data)[i].z;
|
||||||
|
}
|
||||||
|
for (i = 0; i < arg0->data.vertexShapeCnt; i++) {
|
||||||
|
temp_r30 = arg0->data.vertexShape[i];
|
||||||
|
var_f31 = arg0->data.mesh.morphWeight[i];
|
||||||
|
if (var_f31 < 0.0f) {
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
} else if (var_f30 > 1.0f) {
|
||||||
|
var_f31 /= var_f30;
|
||||||
|
}
|
||||||
|
for (var_r29 = 0; var_r29 < temp_r30->count; var_r29++) {
|
||||||
|
Vertextop[var_r29].x += var_f31 * (((Vec*) temp_r30->data)[var_r29].x - Vertextop[var_r29].x);
|
||||||
|
Vertextop[var_r29].y += var_f31 * (((Vec*) temp_r30->data)[var_r29].y - Vertextop[var_r29].y);
|
||||||
|
Vertextop[var_r29].z += var_f31 * (((Vec*) temp_r30->data)[var_r29].z - Vertextop[var_r29].z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
temp_r27 = arg0->data.mesh.baseMorph;
|
||||||
|
var_r26 = temp_r27 + 1;
|
||||||
|
if (var_r26 >= arg0->data.vertexShapeCnt) {
|
||||||
|
var_r26 = temp_r27;
|
||||||
|
}
|
||||||
|
var_f31 = arg0->data.mesh.baseMorph - temp_r27;
|
||||||
|
temp_r30 = arg0->data.vertexShape[temp_r27];
|
||||||
|
temp_r28 = arg0->data.vertexShape[var_r26];
|
||||||
|
for (i = 0; i < temp_r30->count; i++) {
|
||||||
|
Vertextop[i].x = ((Vec*) temp_r30->data)[i].x + var_f31 * (((Vec*) temp_r28->data)[i].x - ((Vec*) temp_r30->data)[i].x);
|
||||||
|
Vertextop[i].y = ((Vec*) temp_r30->data)[i].y + var_f31 * (((Vec*) temp_r28->data)[i].y - ((Vec*) temp_r30->data)[i].y);
|
||||||
|
Vertextop[i].z = ((Vec*) temp_r30->data)[i].z + var_f31 * (((Vec*) temp_r28->data)[i].z - ((Vec*) temp_r30->data)[i].z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShapeProc(HsfData *arg0) {
|
||||||
|
HsfObject *var_r31;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
var_r31 = arg0->object;
|
||||||
|
for (i = 0; i < arg0->objectCnt; i++, var_r31++) {
|
||||||
|
if (var_r31->type == 2 && var_r31->data.vertexShapeCnt != 0) {
|
||||||
|
Vertextop = var_r31->data.vertex->data;
|
||||||
|
SetShapeMain(var_r31);
|
||||||
|
DCStoreRange(Vertextop, var_r31->data.vertex->count * sizeof(Vec));
|
||||||
|
var_r31->data.unk120[0]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
109
src/game/THPDraw.c
Executable file
109
src/game/THPDraw.c
Executable file
|
|
@ -0,0 +1,109 @@
|
||||||
|
#include "game/THPDraw.h"
|
||||||
|
|
||||||
|
void THPGXRestore(void) {
|
||||||
|
GXSetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE);
|
||||||
|
GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET);
|
||||||
|
GXSetNumTexGens(1);
|
||||||
|
GXSetNumChans(0);
|
||||||
|
GXSetNumTevStages(1);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||||
|
GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE2, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE3, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||||
|
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||||
|
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||||
|
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||||
|
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
|
||||||
|
GXSetTevKAlphaSel(GX_TEVSTAGE1, GX_TEV_KASEL_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void THPGXYuv2RgbSetup(GXRenderModeObj *obj, GXColor *arg1, Mtx arg2) {
|
||||||
|
s32 sp2C = obj->fbWidth;
|
||||||
|
s32 sp28 = obj->efbHeight;
|
||||||
|
|
||||||
|
GXLoadPosMtxImm(arg2, GX_PNMTX0);
|
||||||
|
GXSetCurrentMtx(GX_PNMTX0);
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
|
||||||
|
GXSetColorUpdate(GX_TRUE);
|
||||||
|
GXSetAlphaUpdate(GX_FALSE);
|
||||||
|
GXSetNumChans(0);
|
||||||
|
GXSetNumTexGens(2);
|
||||||
|
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||||
|
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||||
|
GXInvalidateTexAll();
|
||||||
|
GXClearVtxDesc();
|
||||||
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||||
|
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_POS, GX_TEX_ST, GX_RGBA4, 0);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_TEX0, GX_TEX_ST, GX_RGBX8, 0);
|
||||||
|
GXSetNumTevStages(5);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
|
||||||
|
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_KONST, GX_CC_C0);
|
||||||
|
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV);
|
||||||
|
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_KONST, GX_CA_A0);
|
||||||
|
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV);
|
||||||
|
GXSetTevKColorSel(GX_TEVSTAGE0, GX_TEV_KCSEL_K0);
|
||||||
|
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_K0_A);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP2, GX_COLOR_NULL);
|
||||||
|
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_TEXC, GX_CC_KONST, GX_CC_CPREV);
|
||||||
|
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_2, GX_FALSE, GX_TEVPREV);
|
||||||
|
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_KONST, GX_CA_APREV);
|
||||||
|
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV);
|
||||||
|
GXSetTevKColorSel(GX_TEVSTAGE1, GX_TEV_KCSEL_K1);
|
||||||
|
GXSetTevKAlphaSel(GX_TEVSTAGE1, GX_TEV_KASEL_K1_A);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||||
|
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_CPREV);
|
||||||
|
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_TEXA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||||
|
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE2, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||||
|
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_APREV, GX_CC_CPREV, GX_CC_KONST, GX_CC_ZERO);
|
||||||
|
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||||
|
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevSwapMode(GX_TEVSTAGE3, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||||
|
GXSetTevKColorSel(GX_TEVSTAGE3, GX_TEV_KCSEL_K2);
|
||||||
|
GXSetTevColor(GX_TEVREG1, *arg1);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||||
|
GXSetTevColorIn(GX_TEVSTAGE4, GX_CC_ZERO, GX_CC_CPREV, GX_CC_C1, GX_CC_ZERO);
|
||||||
|
GXSetTevColorOp(GX_TEVSTAGE4, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevAlphaIn(GX_TEVSTAGE4, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A1);
|
||||||
|
GXSetTevAlphaOp(GX_TEVSTAGE4, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||||
|
GXSetTevColorS10(GX_TEVREG0, (GXColorS10) { 0xFFA6, 0, 0xFF8E, 0x0087 });
|
||||||
|
GXSetTevKColor(GX_KCOLOR0, (GXColor) { 0, 0, 0xE2, 0x58 });
|
||||||
|
GXSetTevKColor(GX_KCOLOR1, (GXColor) { 0xB3, 0, 0, 0xB6 });
|
||||||
|
GXSetTevKColor(GX_KCOLOR2, (GXColor) { 0xFF, 0, 0xFF, 0x80 });
|
||||||
|
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
void THPGXYuv2RgbDraw(u32 *yImage, u32 *uImage, u32 *vImage, s16 x, s16 y, s16 texWidth, s16 texHeight, s16 polyWidth, s16 polyHeight) {
|
||||||
|
GXTexObj sp54;
|
||||||
|
GXTexObj sp34;
|
||||||
|
GXTexObj sp14;
|
||||||
|
|
||||||
|
GXInitTexObj(&sp54, yImage, texWidth, texHeight, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||||
|
GXInitTexObjLOD(&sp54, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||||
|
GXLoadTexObj(&sp54, GX_TEXMAP0);
|
||||||
|
GXInitTexObj(&sp34, uImage, texWidth >> 1, texHeight >> 1, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||||
|
GXInitTexObjLOD(&sp34, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||||
|
GXLoadTexObj(&sp34, GX_TEXMAP1);
|
||||||
|
GXInitTexObj(&sp14, vImage, texWidth >> 1, texHeight >> 1, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||||
|
GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||||
|
GXLoadTexObj(&sp14, GX_TEXMAP2);
|
||||||
|
GXBegin(GX_QUADS, GX_VTXFMT7, 4);
|
||||||
|
GXPosition3s16(x, y, 0);
|
||||||
|
GXTexCoord2s16(0, 0);
|
||||||
|
GXPosition3s16(x + polyWidth, y, 0);
|
||||||
|
GXTexCoord2s16(1, 0);
|
||||||
|
GXPosition3s16(x + polyWidth, y + polyHeight, 0);
|
||||||
|
GXTexCoord2s16(1, 1);
|
||||||
|
GXPosition3s16(x, y + polyHeight, 0);
|
||||||
|
GXTexCoord2s16(0, 1);
|
||||||
|
GXEnd();
|
||||||
|
}
|
||||||
657
src/game/THPSimple.c
Executable file
657
src/game/THPSimple.c
Executable file
|
|
@ -0,0 +1,657 @@
|
||||||
|
#include "game/THPSimple.h"
|
||||||
|
#include "game/THPDraw.h"
|
||||||
|
|
||||||
|
#define ALIGN32(val) (((val) + 0x1F) & ~0x1F)
|
||||||
|
|
||||||
|
static void __THPSimpleDVDCallback(s32 result, DVDFileInfo *fileInfo);
|
||||||
|
static s32 VideoDecode(void *arg0);
|
||||||
|
static void THPAudioMixCallback(void);
|
||||||
|
|
||||||
|
UnkThpStruct10 SimpleControl;
|
||||||
|
static u8 SoundBuffer[2][0x280];
|
||||||
|
static u8 WorkBuffer[0x40];
|
||||||
|
|
||||||
|
static s32 SoundBufferIndex;
|
||||||
|
static void *LastAudioBuffer;
|
||||||
|
static void *CurAudioBuffer;
|
||||||
|
static s32 bufIdx;
|
||||||
|
static s32 AudioSystem;
|
||||||
|
static void (*OldAIDCallback)();
|
||||||
|
static s32 Initialized;
|
||||||
|
|
||||||
|
s32 THPSimpleInit(s32 arg0) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
memset(&SimpleControl, 0, sizeof(SimpleControl));
|
||||||
|
LCEnable();
|
||||||
|
if (THPInit() == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
temp_r31 = OSDisableInterrupts();
|
||||||
|
AudioSystem = arg0;
|
||||||
|
SoundBufferIndex = 0;
|
||||||
|
LastAudioBuffer = NULL;
|
||||||
|
CurAudioBuffer = NULL;
|
||||||
|
OldAIDCallback = AIRegisterDMACallback(THPAudioMixCallback);
|
||||||
|
if (OldAIDCallback == NULL && AudioSystem != 0) {
|
||||||
|
AIRegisterDMACallback(NULL);
|
||||||
|
OSRestoreInterrupts(temp_r31);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
OSRestoreInterrupts(temp_r31);
|
||||||
|
if (AudioSystem == 0) {
|
||||||
|
memset(SoundBuffer, 0, sizeof(SoundBuffer));
|
||||||
|
DCFlushRange(SoundBuffer, sizeof(SoundBuffer));
|
||||||
|
AIInitDMA((u32) &SoundBuffer[SoundBufferIndex], sizeof(SoundBuffer[0]));
|
||||||
|
AIStartDMA();
|
||||||
|
}
|
||||||
|
Initialized = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void THPSimpleQuit(void) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
LCDisable();
|
||||||
|
temp_r31 = OSDisableInterrupts();
|
||||||
|
if (OldAIDCallback) {
|
||||||
|
AIRegisterDMACallback(OldAIDCallback);
|
||||||
|
}
|
||||||
|
OSRestoreInterrupts(temp_r31);
|
||||||
|
Initialized = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleOpen(char *arg0) {
|
||||||
|
s32 var_r31;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (Initialized == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unk98 != 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
memset(&SimpleControl.unk80, 0, sizeof(SimpleControl.unk80));
|
||||||
|
memset(SimpleControl.unk88, 0, sizeof(SimpleControl.unk88));
|
||||||
|
if (DVDOpen(arg0, &SimpleControl.unk00) == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (DVDReadPrio(&SimpleControl.unk00, &WorkBuffer, 0x40, 0, 2) < 0) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
memcpy(&SimpleControl.unk3C, &WorkBuffer, sizeof(SimpleControl.unk3C));
|
||||||
|
if (strcmp(SimpleControl.unk3C.mMagic, "THP") != 0) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unk3C.mVersion != 0x10000) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
var_r31 = SimpleControl.unk3C.mCompInfoDataOffsets;
|
||||||
|
if (DVDReadPrio(&SimpleControl.unk00, &WorkBuffer, 0x20, var_r31, 2) < 0) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
memcpy(&SimpleControl.unk6C, &WorkBuffer, sizeof(SimpleControl.unk6C));
|
||||||
|
var_r31 += sizeof(SimpleControl.unk6C);
|
||||||
|
SimpleControl.unk9F = 0;
|
||||||
|
for (i = 0; i < SimpleControl.unk6C.mNumComponents; i++) {
|
||||||
|
switch (SimpleControl.unk6C.mFrameComp[i]) {
|
||||||
|
case 0:
|
||||||
|
if (DVDReadPrio(&SimpleControl.unk00, &WorkBuffer, 0x20, var_r31, 2) < 0) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
memcpy(&SimpleControl.unk80, &WorkBuffer, sizeof(SimpleControl.unk80));
|
||||||
|
var_r31 += sizeof(SimpleControl.unk80);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (DVDReadPrio(&SimpleControl.unk00, &WorkBuffer, 0x20, var_r31, 2) < 0) {
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
memcpy(SimpleControl.unk88, &WorkBuffer, sizeof(SimpleControl.unk88));
|
||||||
|
SimpleControl.unk9F = 1;
|
||||||
|
var_r31 += sizeof(SimpleControl.unk88);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SimpleControl.unkA0 = SimpleControl.unk3C.mMovieDataOffsets;
|
||||||
|
SimpleControl.unkB4 = SimpleControl.unk3C.mFirstFrameSize;
|
||||||
|
SimpleControl.unkB0 = 0;
|
||||||
|
SimpleControl.unkB8 = 0;
|
||||||
|
SimpleControl.unkA4 = 0;
|
||||||
|
SimpleControl.unk144[0].unk0C = -1;
|
||||||
|
SimpleControl.unkAC = 0;
|
||||||
|
SimpleControl.unk194 = 0;
|
||||||
|
SimpleControl.unk198 = 0;
|
||||||
|
SimpleControl.unk9C = 0;
|
||||||
|
SimpleControl.unk9D = 0;
|
||||||
|
SimpleControl.unk9E = 0;
|
||||||
|
SimpleControl.unk98 = 1;
|
||||||
|
SimpleControl.unkC0 = SimpleControl.unkBC;
|
||||||
|
SimpleControl.unkC8 = 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleClose(void) {
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9C == 0) {
|
||||||
|
if (SimpleControl.unk9F != 0) {
|
||||||
|
if (SimpleControl.unk9D == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
SimpleControl.unk9D = 0;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unkA8 == 0) {
|
||||||
|
SimpleControl.unk98 = 0;
|
||||||
|
DVDClose(&SimpleControl.unk00);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleCalcNeedMemory(void) {
|
||||||
|
s32 var_r31;
|
||||||
|
|
||||||
|
if (SimpleControl.unk98 != 0) {
|
||||||
|
var_r31 = ALIGN32(SimpleControl.unk3C.mBufferSize) * 10;
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04);
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04 / 4);
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04 / 4);
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04);
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04 / 4);
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04 / 4);
|
||||||
|
if (SimpleControl.unk9F != 0) {
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk3C.mAudioMaxSamples * 4) * 4;
|
||||||
|
}
|
||||||
|
var_r31 += 0x1000;
|
||||||
|
return var_r31;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleSetBuffer(void *arg0) {
|
||||||
|
u8 *var_r31;
|
||||||
|
u32 temp_r28;
|
||||||
|
u32 temp_r29;
|
||||||
|
u32 i;
|
||||||
|
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9C == 0) {
|
||||||
|
if (SimpleControl.unk9D == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
temp_r28 = ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04);
|
||||||
|
temp_r29 = ALIGN32(SimpleControl.unk80.unk00 * SimpleControl.unk80.unk04 / 4);
|
||||||
|
var_r31 = arg0;
|
||||||
|
for (i = 0; i < 2; i++) {
|
||||||
|
SimpleControl.unk144[i].unk00 = var_r31;
|
||||||
|
DCInvalidateRange(var_r31, temp_r28);
|
||||||
|
var_r31 += temp_r28;
|
||||||
|
SimpleControl.unk144[i].unk04 = var_r31;
|
||||||
|
DCInvalidateRange(var_r31, temp_r29);
|
||||||
|
var_r31 += temp_r29;
|
||||||
|
SimpleControl.unk144[i].unk08 = var_r31;
|
||||||
|
DCInvalidateRange(var_r31, temp_r29);
|
||||||
|
var_r31 += temp_r29;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
SimpleControl.unkCC[i].unk00 = (s32*) var_r31;
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk3C.mBufferSize);
|
||||||
|
SimpleControl.unkCC[i].unk08 = 0;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unk9F != 0) {
|
||||||
|
for (i = 0; i < 4; i++) {
|
||||||
|
SimpleControl.unk164[i].unk00 = var_r31;
|
||||||
|
SimpleControl.unk164[i].unk04 = var_r31;
|
||||||
|
SimpleControl.unk164[i].unk08 = 0;
|
||||||
|
var_r31 += ALIGN32(SimpleControl.unk3C.mAudioMaxSamples * 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SimpleControl.unk94 = var_r31;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void THPSimpleInlineFunc(void) {
|
||||||
|
if (SimpleControl.unkB8 > SimpleControl.unk3C.mNumFrames - 1) {
|
||||||
|
if (SimpleControl.unk9E != 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SimpleControl.unkB8 = 0;
|
||||||
|
SimpleControl.unkA0 = SimpleControl.unk3C.mMovieDataOffsets;
|
||||||
|
SimpleControl.unkB4 = SimpleControl.unk3C.mFirstFrameSize;
|
||||||
|
}
|
||||||
|
SimpleControl.unkA8 = 1;
|
||||||
|
if (DVDReadAsyncPrio(&SimpleControl.unk00, SimpleControl.unkCC[SimpleControl.unkB0].unk00, SimpleControl.unkB4, SimpleControl.unkA0, __THPSimpleDVDCallback, 2) != 1) {
|
||||||
|
SimpleControl.unkA8 = 0;
|
||||||
|
SimpleControl.unkA4 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __THPSimpleDVDCallback(s32 result, DVDFileInfo *fileInfo) {
|
||||||
|
s32 var_r31;
|
||||||
|
|
||||||
|
if (result == -1) {
|
||||||
|
SimpleControl.unkA4 = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (result != -3) {
|
||||||
|
SimpleControl.unkA8 = 0;
|
||||||
|
SimpleControl.unkCC[SimpleControl.unkB0].unk04 = SimpleControl.unkB8;
|
||||||
|
SimpleControl.unkB8++;
|
||||||
|
SimpleControl.unkCC[SimpleControl.unkB0].unk08 = 1;
|
||||||
|
SimpleControl.unkA0 += SimpleControl.unkB4;
|
||||||
|
SimpleControl.unkB4 = *SimpleControl.unkCC[SimpleControl.unkB0].unk00;
|
||||||
|
if (SimpleControl.unkB0 + 1 >= 10) {
|
||||||
|
var_r31 = 0;
|
||||||
|
} else {
|
||||||
|
var_r31 = SimpleControl.unkB0 + 1;
|
||||||
|
}
|
||||||
|
SimpleControl.unkB0 = var_r31;
|
||||||
|
if (SimpleControl.unkCC[SimpleControl.unkB0].unk08 == 0 && SimpleControl.unkA4 == 0 && SimpleControl.unk9C == 1) {
|
||||||
|
THPSimpleInlineFunc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimplePreLoad(s32 arg0) {
|
||||||
|
u32 var_r30;
|
||||||
|
s32 var_r29;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9C == 0) {
|
||||||
|
var_r30 = 10;
|
||||||
|
if (arg0 == 0 && SimpleControl.unk3C.mNumFrames < 10) {
|
||||||
|
var_r30 = SimpleControl.unk3C.mNumFrames;
|
||||||
|
}
|
||||||
|
for (i = 0; i < var_r30; i++) {
|
||||||
|
if (DVDReadPrio(&SimpleControl.unk00, SimpleControl.unkCC[SimpleControl.unkB0].unk00, SimpleControl.unkB4, SimpleControl.unkA0, 2) < 0) {
|
||||||
|
SimpleControl.unkA4 = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
SimpleControl.unkA0 += SimpleControl.unkB4;
|
||||||
|
SimpleControl.unkB4 = *SimpleControl.unkCC[SimpleControl.unkB0].unk00;
|
||||||
|
SimpleControl.unkCC[SimpleControl.unkB0].unk08 = 1;
|
||||||
|
SimpleControl.unkCC[SimpleControl.unkB0].unk04 = SimpleControl.unkB8;
|
||||||
|
if (SimpleControl.unkB0 + 1 >= 10) {
|
||||||
|
var_r29 = 0;
|
||||||
|
} else {
|
||||||
|
var_r29 = SimpleControl.unkB0 + 1;
|
||||||
|
}
|
||||||
|
SimpleControl.unkB0 = var_r29;
|
||||||
|
SimpleControl.unkB8++;
|
||||||
|
if (SimpleControl.unkB8 > SimpleControl.unk3C.mNumFrames - 1 && SimpleControl.unk9E == 1) {
|
||||||
|
SimpleControl.unkB8 = 0;
|
||||||
|
SimpleControl.unkA0 = SimpleControl.unk3C.mMovieDataOffsets;
|
||||||
|
SimpleControl.unkB4 = SimpleControl.unk3C.mFirstFrameSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SimpleControl.unk9E = arg0;
|
||||||
|
SimpleControl.unk9C = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void THPSimpleAudioStart(void) {
|
||||||
|
SimpleControl.unk9D = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void THPSimpleAudioStop(void) {
|
||||||
|
SimpleControl.unk9D = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleLoadStop(void) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9D == 0) {
|
||||||
|
SimpleControl.unk9C = 0;
|
||||||
|
if (SimpleControl.unkA8 != 0) {
|
||||||
|
DVDCancel(&SimpleControl.unk00.cb);
|
||||||
|
SimpleControl.unkA8 = 0;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
SimpleControl.unkCC[i].unk08 = 0;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 4; i++) {
|
||||||
|
SimpleControl.unk164[i].unk08 = 0;
|
||||||
|
}
|
||||||
|
SimpleControl.unk144[0].unk0C = -1;
|
||||||
|
SimpleControl.unkA0 = SimpleControl.unk3C.mMovieDataOffsets;
|
||||||
|
SimpleControl.unkB4 = SimpleControl.unk3C.mFirstFrameSize;
|
||||||
|
SimpleControl.unkB0 = 0;
|
||||||
|
SimpleControl.unkB8 = 0;
|
||||||
|
SimpleControl.unkA4 = 0;
|
||||||
|
SimpleControl.unkAC = 0;
|
||||||
|
SimpleControl.unk194 = 0;
|
||||||
|
SimpleControl.unk198 = 0;
|
||||||
|
SimpleControl.unkBC = SimpleControl.unkC0;
|
||||||
|
SimpleControl.unkC8 = 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleDecode(void) {
|
||||||
|
u8 *var_r29;
|
||||||
|
s32 *var_r30;
|
||||||
|
s32 temp_r27;
|
||||||
|
s32 temp_r26;
|
||||||
|
s32 temp_r25;
|
||||||
|
s32 var_r28;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (SimpleControl.unkCC[SimpleControl.unkAC].unk08 != 0) {
|
||||||
|
var_r30 = SimpleControl.unkCC[SimpleControl.unkAC].unk00 + 2;
|
||||||
|
var_r29 = (u8*) (&SimpleControl.unkCC[SimpleControl.unkAC].unk00[SimpleControl.unk6C.mNumComponents] + 2);
|
||||||
|
if (SimpleControl.unk9F != 0) {
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk194].unk08 == 0) {
|
||||||
|
for (i = 0; i < SimpleControl.unk6C.mNumComponents; var_r29 += *var_r30, var_r30++, i++) {
|
||||||
|
switch (SimpleControl.unk6C.mFrameComp[i]) {
|
||||||
|
case 0:
|
||||||
|
if (VideoDecode(var_r29) == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
temp_r26 = THPAudioDecode(SimpleControl.unk164[SimpleControl.unk194].unk00, var_r29, 0);
|
||||||
|
temp_r27 = OSDisableInterrupts();
|
||||||
|
SimpleControl.unk164[SimpleControl.unk194].unk08 = temp_r26;
|
||||||
|
SimpleControl.unk164[SimpleControl.unk194].unk04 = SimpleControl.unk164[SimpleControl.unk194].unk00;
|
||||||
|
OSRestoreInterrupts(temp_r27);
|
||||||
|
SimpleControl.unk194++;
|
||||||
|
if (SimpleControl.unk194 >= 4) {
|
||||||
|
SimpleControl.unk194 = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < SimpleControl.unk6C.mNumComponents; var_r29 += *var_r30, var_r30++, i++) {
|
||||||
|
if ((s32) SimpleControl.unk6C.mFrameComp[i] != 0) {
|
||||||
|
(void) i; // required to match. Optimized out unreachable code?
|
||||||
|
} else if (VideoDecode(var_r29) == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SimpleControl.unkCC[SimpleControl.unkAC].unk08 = 0;
|
||||||
|
if (SimpleControl.unkAC + 1 >= 10) {
|
||||||
|
var_r28 = 0;
|
||||||
|
} else {
|
||||||
|
var_r28 = SimpleControl.unkAC + 1;
|
||||||
|
}
|
||||||
|
SimpleControl.unkAC = var_r28;
|
||||||
|
temp_r25 = OSDisableInterrupts();
|
||||||
|
if (SimpleControl.unkCC[SimpleControl.unkB0].unk08 == 0 && SimpleControl.unkA8 == 0 && SimpleControl.unkA4 == 0 && SimpleControl.unk9C == 1) {
|
||||||
|
THPSimpleInlineFunc();
|
||||||
|
}
|
||||||
|
OSRestoreInterrupts(temp_r25);
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 VideoDecode(void *arg0) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
bufIdx = (bufIdx + 1) & 1;
|
||||||
|
temp_r31 = THPVideoDecode(arg0, SimpleControl.unk144[bufIdx].unk00, SimpleControl.unk144[bufIdx].unk04, SimpleControl.unk144[bufIdx].unk08, SimpleControl.unk94);
|
||||||
|
if (temp_r31 == 0) {
|
||||||
|
SimpleControl.unk144[0].unk0C = SimpleControl.unkCC[SimpleControl.unkAC].unk04;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleDrawCurrentFrame(GXRenderModeObj *arg0, GXColor *arg1, Mtx arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) {
|
||||||
|
if (SimpleControl.unk144[0].unk0C >= 0) {
|
||||||
|
THPGXYuv2RgbSetup(arg0, arg1, arg2);
|
||||||
|
THPGXYuv2RgbDraw(SimpleControl.unk144[bufIdx].unk00, SimpleControl.unk144[bufIdx].unk04, SimpleControl.unk144[bufIdx].unk08, arg3, arg4, SimpleControl.unk80.unk00, SimpleControl.unk80.unk04, arg5, arg6);
|
||||||
|
THPGXRestore();
|
||||||
|
return SimpleControl.unk144[0].unk0C;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static u16 VolumeTable[] = {
|
||||||
|
0x0000, 0x0002, 0x0008, 0x0012, 0x0020, 0x0032, 0x0049, 0x0063,
|
||||||
|
0x0082, 0x00A4, 0x00CB, 0x00F5, 0x0124, 0x0157, 0x018E, 0x01C9,
|
||||||
|
0x0208, 0x024B, 0x0292, 0x02DD, 0x032C, 0x037F, 0x03D7, 0x0432,
|
||||||
|
0x0492, 0x04F5, 0x055D, 0x05C9, 0x0638, 0x06AC, 0x0724, 0x07A0,
|
||||||
|
0x0820, 0x08A4, 0x092C, 0x09B8, 0x0A48, 0x0ADD, 0x0B75, 0x0C12,
|
||||||
|
0x0CB2, 0x0D57, 0x0DFF, 0x0EAC, 0x0F5D, 0x1012, 0x10CA, 0x1187,
|
||||||
|
0x1248, 0x130D, 0x13D7, 0x14A4, 0x1575, 0x164A, 0x1724, 0x1801,
|
||||||
|
0x18E3, 0x19C8, 0x1AB2, 0x1BA0, 0x1C91, 0x1D87, 0x1E81, 0x1F7F,
|
||||||
|
0x2081, 0x2187, 0x2291, 0x239F, 0x24B2, 0x25C8, 0x26E2, 0x2801,
|
||||||
|
0x2923, 0x2A4A, 0x2B75, 0x2CA3, 0x2DD6, 0x2F0D, 0x3048, 0x3187,
|
||||||
|
0x32CA, 0x3411, 0x355C, 0x36AB, 0x37FF, 0x3956, 0x3AB1, 0x3C11,
|
||||||
|
0x3D74, 0x3EDC, 0x4048, 0x41B7, 0x432B, 0x44A3, 0x461F, 0x479F,
|
||||||
|
0x4923, 0x4AAB, 0x4C37, 0x4DC7, 0x4F5C, 0x50F4, 0x5290, 0x5431,
|
||||||
|
0x55D6, 0x577E, 0x592B, 0x5ADC, 0x5C90, 0x5E49, 0x6006, 0x61C7,
|
||||||
|
0x638C, 0x6555, 0x6722, 0x68F4, 0x6AC9, 0x6CA2, 0x6E80, 0x7061,
|
||||||
|
0x7247, 0x7430, 0x761E, 0x7810, 0x7A06, 0x7C00, 0x7DFE, 0x8000
|
||||||
|
};
|
||||||
|
|
||||||
|
static void MixAudio(void *arg0, void *arg1, u32 arg2) {
|
||||||
|
s32 var_r31;
|
||||||
|
u32 var_r27;
|
||||||
|
u32 var_r28;
|
||||||
|
s32 i;
|
||||||
|
u16 temp_r24;
|
||||||
|
s16 *var_r26;
|
||||||
|
s16 *var_r30;
|
||||||
|
s16 *var_r29;
|
||||||
|
|
||||||
|
if (arg1) {
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9D == 1 && SimpleControl.unk9F != 0) {
|
||||||
|
var_r28 = arg2;
|
||||||
|
var_r30 = arg0;
|
||||||
|
var_r26 = arg1;
|
||||||
|
while (1) {
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 >= var_r28) {
|
||||||
|
var_r27 = var_r28;
|
||||||
|
} else {
|
||||||
|
var_r27 = SimpleControl.unk164[SimpleControl.unk198].unk08;
|
||||||
|
}
|
||||||
|
var_r29 = SimpleControl.unk164[SimpleControl.unk198].unk04;
|
||||||
|
for (i = 0; i < var_r27; i++) {
|
||||||
|
if (SimpleControl.unkC8 != 0) {
|
||||||
|
SimpleControl.unkC8--;
|
||||||
|
SimpleControl.unkBC += SimpleControl.unkC4;
|
||||||
|
} else {
|
||||||
|
SimpleControl.unkBC = SimpleControl.unkC0;
|
||||||
|
}
|
||||||
|
temp_r24 = VolumeTable[(s32) SimpleControl.unkBC];
|
||||||
|
var_r31 = *var_r26 + ((temp_r24 * *var_r29) >> 0xF);
|
||||||
|
if (var_r31 < -0x8000) {
|
||||||
|
var_r31 = -0x8000;
|
||||||
|
}
|
||||||
|
if (var_r31 > 0x7FFF) {
|
||||||
|
var_r31 = 0x7FFF;
|
||||||
|
}
|
||||||
|
*var_r30 = var_r31;
|
||||||
|
var_r30++;
|
||||||
|
var_r26++;
|
||||||
|
var_r29++;
|
||||||
|
var_r31 = *var_r26 + ((temp_r24 * *var_r29) >> 0xF);
|
||||||
|
if (var_r31 < -0x8000) {
|
||||||
|
var_r31 = -0x8000;
|
||||||
|
}
|
||||||
|
if (var_r31 > 0x7FFF) {
|
||||||
|
var_r31 = 0x7FFF;
|
||||||
|
}
|
||||||
|
*var_r30 = var_r31;
|
||||||
|
var_r30++;
|
||||||
|
var_r26++;
|
||||||
|
var_r29++;
|
||||||
|
}
|
||||||
|
var_r28 -= var_r27;
|
||||||
|
SimpleControl.unk164[SimpleControl.unk198].unk08 -= var_r27;
|
||||||
|
SimpleControl.unk164[SimpleControl.unk198].unk04 = var_r29;
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 == 0) {
|
||||||
|
SimpleControl.unk198++;
|
||||||
|
if (SimpleControl.unk198 >= 4) {
|
||||||
|
SimpleControl.unk198 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (var_r28 == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(var_r30, var_r26, var_r28 * 4);
|
||||||
|
} else {
|
||||||
|
memcpy(arg0, arg1, arg2 * 4);
|
||||||
|
}
|
||||||
|
} else if (SimpleControl.unk98 != 0 && SimpleControl.unk9D == 1 && SimpleControl.unk9F != 0) {
|
||||||
|
var_r28 = arg2;
|
||||||
|
var_r30 = arg0;
|
||||||
|
while (1) {
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 >= var_r28) {
|
||||||
|
var_r27 = var_r28;
|
||||||
|
} else {
|
||||||
|
var_r27 = SimpleControl.unk164[SimpleControl.unk198].unk08;
|
||||||
|
}
|
||||||
|
var_r29 = SimpleControl.unk164[SimpleControl.unk198].unk04;
|
||||||
|
for (i = 0; i < var_r27; i++) {
|
||||||
|
if (SimpleControl.unkC8 != 0) {
|
||||||
|
SimpleControl.unkC8--;
|
||||||
|
SimpleControl.unkBC += SimpleControl.unkC4;
|
||||||
|
} else {
|
||||||
|
SimpleControl.unkBC = SimpleControl.unkC0;
|
||||||
|
}
|
||||||
|
temp_r24 = VolumeTable[(s32) SimpleControl.unkBC];
|
||||||
|
var_r31 = (temp_r24 * *var_r29) >> 0xF;
|
||||||
|
if (var_r31 < -0x8000) {
|
||||||
|
var_r31 = -0x8000;
|
||||||
|
}
|
||||||
|
if (var_r31 > 0x7FFF) {
|
||||||
|
var_r31 = 0x7FFF;
|
||||||
|
}
|
||||||
|
*var_r30 = var_r31;
|
||||||
|
var_r30++;
|
||||||
|
var_r29++;
|
||||||
|
var_r31 = (temp_r24 * *var_r29) >> 0xF;
|
||||||
|
if (var_r31 < -0x8000) {
|
||||||
|
var_r31 = -0x8000;
|
||||||
|
}
|
||||||
|
if (var_r31 > 0x7FFF) {
|
||||||
|
var_r31 = 0x7FFF;
|
||||||
|
}
|
||||||
|
*var_r30 = var_r31;
|
||||||
|
var_r30++;
|
||||||
|
var_r29++;
|
||||||
|
}
|
||||||
|
var_r28 -= var_r27;
|
||||||
|
SimpleControl.unk164[SimpleControl.unk198].unk08 -= var_r27;
|
||||||
|
SimpleControl.unk164[SimpleControl.unk198].unk04 = var_r29;
|
||||||
|
if (SimpleControl.unk164[SimpleControl.unk198].unk08 == 0) {
|
||||||
|
SimpleControl.unk198++;
|
||||||
|
if (SimpleControl.unk198 >= 4) {
|
||||||
|
SimpleControl.unk198 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (var_r28 == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memset(var_r30, 0, var_r28 * 4);
|
||||||
|
} else {
|
||||||
|
memset(arg0, 0, arg2 * 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleGetVideoInfo(UnkThpStruct04 *arg0) {
|
||||||
|
if (SimpleControl.unk98 != 0) {
|
||||||
|
memcpy(arg0, &SimpleControl.unk80, 8);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleGetTotalFrame(void) {
|
||||||
|
if (SimpleControl.unk98 != 0) {
|
||||||
|
return SimpleControl.unk3C.mNumFrames;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void THPAudioMixCallback(void) {
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
if (AudioSystem == 0) {
|
||||||
|
SoundBufferIndex ^= 1;
|
||||||
|
AIInitDMA((u32) SoundBuffer[SoundBufferIndex], sizeof(SoundBuffer[0]));
|
||||||
|
temp_r31 = OSEnableInterrupts();
|
||||||
|
MixAudio(SoundBuffer[SoundBufferIndex], 0, 0xA0);
|
||||||
|
DCFlushRange(SoundBuffer[SoundBufferIndex], sizeof(SoundBuffer[0]));
|
||||||
|
OSRestoreInterrupts(temp_r31);
|
||||||
|
} else {
|
||||||
|
if (AudioSystem == 1) {
|
||||||
|
if (LastAudioBuffer) {
|
||||||
|
CurAudioBuffer = LastAudioBuffer;
|
||||||
|
}
|
||||||
|
OldAIDCallback();
|
||||||
|
LastAudioBuffer = (u8*) AIGetDMAStartAddr() + 0x80000000;
|
||||||
|
} else {
|
||||||
|
OldAIDCallback();
|
||||||
|
CurAudioBuffer = (u8*) AIGetDMAStartAddr() + 0x80000000;
|
||||||
|
}
|
||||||
|
SoundBufferIndex ^= 1;
|
||||||
|
AIInitDMA((u32) SoundBuffer[SoundBufferIndex], sizeof(SoundBuffer[0]));
|
||||||
|
temp_r31 = OSEnableInterrupts();
|
||||||
|
if (CurAudioBuffer) {
|
||||||
|
DCInvalidateRange(CurAudioBuffer, sizeof(SoundBuffer[0]));
|
||||||
|
}
|
||||||
|
MixAudio(SoundBuffer[SoundBufferIndex], CurAudioBuffer, 0xA0);
|
||||||
|
DCFlushRange(SoundBuffer[SoundBufferIndex], sizeof(SoundBuffer[0]));
|
||||||
|
OSRestoreInterrupts(temp_r31);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 THPSimpleSetVolume(s32 left, s32 right) {
|
||||||
|
s32 temp_r29;
|
||||||
|
|
||||||
|
if (SimpleControl.unk98 != 0 && SimpleControl.unk9F != 0) {
|
||||||
|
if (left > 127) {
|
||||||
|
left = 127;
|
||||||
|
}
|
||||||
|
if (left < 0) {
|
||||||
|
left = 0;
|
||||||
|
}
|
||||||
|
if (right > 60000) {
|
||||||
|
right = 60000;
|
||||||
|
}
|
||||||
|
if (right < 0) {
|
||||||
|
right = 0;
|
||||||
|
}
|
||||||
|
temp_r29 = OSDisableInterrupts();
|
||||||
|
SimpleControl.unkC0 = left;
|
||||||
|
if (right != 0) {
|
||||||
|
SimpleControl.unkC8 = (right << 5);
|
||||||
|
SimpleControl.unkC4 = (SimpleControl.unkC0 - SimpleControl.unkBC) / SimpleControl.unkC8;
|
||||||
|
} else {
|
||||||
|
SimpleControl.unkC8 = 0;
|
||||||
|
SimpleControl.unkBC = SimpleControl.unkC0;
|
||||||
|
}
|
||||||
|
OSRestoreInterrupts(temp_r29);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -160,7 +160,7 @@ void HuAudFXPanning(s32 arg0, s16 arg1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3) {
|
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3) {
|
||||||
if (omSysExitReq == 0) {
|
if (omSysExitReq == 0) {
|
||||||
HuAudFXListnerSetEX(arg0, arg1,
|
HuAudFXListnerSetEX(arg0, arg1,
|
||||||
arg2 + Snd3DDistOffset,
|
arg2 + Snd3DDistOffset,
|
||||||
|
|
@ -171,7 +171,7 @@ void HuAudFXListnerSet(s32 arg0, s32 arg1, float arg2, float arg3) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HuAudFXListnerSetEX(s32 arg0, s32 arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) {
|
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) {
|
||||||
UnkMsmStruct_02 sp1C;
|
UnkMsmStruct_02 sp1C;
|
||||||
|
|
||||||
if (omSysExitReq == 0) {
|
if (omSysExitReq == 0) {
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@ extern void BoardPlayerMotionEndWait(s32);
|
||||||
extern void BoardPlayerMotionShiftSet(s32, s32, f32, f32, s32);
|
extern void BoardPlayerMotionShiftSet(s32, s32, f32, f32, s32);
|
||||||
extern void BoardPlayerCoinsAdd(s32, s32);
|
extern void BoardPlayerCoinsAdd(s32, s32);
|
||||||
extern void BoardRotateDiceNumbers(s32);
|
extern void BoardRotateDiceNumbers(s32);
|
||||||
extern void BoardCameraAnimBlendSet(s32, s16, s16);
|
extern void BoardCameraMotBlendSet(s32, s16, s16);
|
||||||
extern s32 BoardPlayerAnimBlendCheck(s32);
|
extern s32 BoardPlayerMotBlendCheck(s32);
|
||||||
|
|
||||||
static omObjData *coinChgObj[4] = {
|
static omObjData *coinChgObj[4] = {
|
||||||
NULL,
|
NULL,
|
||||||
|
|
@ -64,7 +64,7 @@ static s32 coinDigitMdl[10] = {
|
||||||
MAKE_DATA_NUM(DATADIR_BOARD, 21),
|
MAKE_DATA_NUM(DATADIR_BOARD, 21),
|
||||||
};
|
};
|
||||||
|
|
||||||
void BoardLandBlueExec(s32 player, s16 space) {
|
void BoardLandBlueExec(s32 player, s32 space) {
|
||||||
Vec pos;
|
Vec pos;
|
||||||
s32 i;
|
s32 i;
|
||||||
s8 coin_chg;
|
s8 coin_chg;
|
||||||
|
|
@ -72,8 +72,8 @@ void BoardLandBlueExec(s32 player, s16 space) {
|
||||||
|
|
||||||
|
|
||||||
BoardCameraViewSet(2);
|
BoardCameraViewSet(2);
|
||||||
BoardPlayerAnimBlendSet(player, 0, 15);
|
BoardPlayerMotBlendSet(player, 0, 15);
|
||||||
while (BoardPlayerAnimBlendCheck(player) == 0) {
|
while (BoardPlayerMotBlendCheck(player) == 0) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
||||||
|
|
@ -105,7 +105,7 @@ void BoardLandBlueExec(s32 player, s16 space) {
|
||||||
BoardRotateDiceNumbers(player);
|
BoardRotateDiceNumbers(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardLandRedExec(s32 player, s16 space) {
|
void BoardLandRedExec(s32 player, s32 space) {
|
||||||
Vec pos;
|
Vec pos;
|
||||||
s32 i;
|
s32 i;
|
||||||
s8 coin_chg;
|
s8 coin_chg;
|
||||||
|
|
@ -113,8 +113,8 @@ void BoardLandRedExec(s32 player, s16 space) {
|
||||||
|
|
||||||
BoardCameraViewSet(2);
|
BoardCameraViewSet(2);
|
||||||
omVibrate(player, 12, 6, 6);
|
omVibrate(player, 12, 6, 6);
|
||||||
BoardPlayerAnimBlendSet(player, 0, 15);
|
BoardPlayerMotBlendSet(player, 0, 15);
|
||||||
while (BoardPlayerAnimBlendCheck(player) == 0) {
|
while (BoardPlayerMotBlendCheck(player) == 0) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) {
|
||||||
|
|
@ -162,7 +162,7 @@ s8 BoardCoinChgCreate(Vec *pos, s8 value) {
|
||||||
|
|
||||||
obj = omAddObjEx(boardObjMan, 266, 0, 0, -1, &UpdateCoinChg);
|
obj = omAddObjEx(boardObjMan, 266, 0, 0, -1, &UpdateCoinChg);
|
||||||
coinChgObj[i] = obj;
|
coinChgObj[i] = obj;
|
||||||
coin_chg = (coinChg *)obj->work;
|
coin_chg = OM_GET_WORK_PTR(obj, coinChg);
|
||||||
coin_chg->hide = 0;
|
coin_chg->hide = 0;
|
||||||
coin_chg->update = 0;
|
coin_chg->update = 0;
|
||||||
coin_chg->minus = (value < 0) ? 1 : 0;
|
coin_chg->minus = (value < 0) ? 1 : 0;
|
||||||
|
|
@ -189,7 +189,7 @@ s32 BoardCoinChgExist(s32 index) {
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
if (coinChgObj[index - 1] != 0) {
|
if (coinChgObj[index - 1] != 0) {
|
||||||
coin_chg = (coinChg *)coinChgObj[index - 1]->work;
|
coin_chg = OM_GET_WORK_PTR(coinChgObj[index - 1], coinChg);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -201,7 +201,7 @@ void BoardCoinChgHide(s32 index) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (coinChgObj[index - 1] != 0) {
|
if (coinChgObj[index - 1] != 0) {
|
||||||
((coinChg *)coinChgObj[index - 1]->work)->hide = 1;
|
OM_GET_WORK_PTR(coinChgObj[index - 1], coinChg)->hide = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -251,7 +251,7 @@ static void CreateCoinChg(coinChg *coin_chg, Vec *pos) {
|
||||||
static void UpdateCoinChg(omObjData *object) {
|
static void UpdateCoinChg(omObjData *object) {
|
||||||
coinChg *coin_chg;
|
coinChg *coin_chg;
|
||||||
|
|
||||||
coin_chg = (coinChg *)object->work;
|
coin_chg = OM_GET_WORK_PTR(object, coinChg);
|
||||||
if ((coin_chg->hide != 0) || (BoardIsKill() != 0)) {
|
if ((coin_chg->hide != 0) || (BoardIsKill() != 0)) {
|
||||||
if (coin_chg->coin_model != -1) {
|
if (coin_chg->coin_model != -1) {
|
||||||
BoardModelKill(coin_chg->coin_model);
|
BoardModelKill(coin_chg->coin_model);
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
1183
src/game/board/model.c
Normal file
1183
src/game/board/model.c
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -41,7 +41,7 @@ extern void BoardModelMotionCreate(s16, s32);
|
||||||
extern void BoardModelMotionKill(s16, s32);
|
extern void BoardModelMotionKill(s16, s32);
|
||||||
extern s32 BoardModelMotionEndCheck(s16);
|
extern s32 BoardModelMotionEndCheck(s16);
|
||||||
extern s32 BoardModelMotionStart(s16, s32, s32);
|
extern s32 BoardModelMotionStart(s16, s32, s32);
|
||||||
extern s32 BoardModelMotionShiftSet(s16, s32, f32, f32, s32);
|
extern s32 BoardModelMotionShiftSet(s16, s32, f32, f32, u32);
|
||||||
extern void BoardModelMotionSpeedSet(s16, f32);
|
extern void BoardModelMotionSpeedSet(s16, f32);
|
||||||
extern void BoardModelMotionTimeSet(s16, f32);
|
extern void BoardModelMotionTimeSet(s16, f32);
|
||||||
extern f32 BoardModelMotionTimeGet(s16);
|
extern f32 BoardModelMotionTimeGet(s16);
|
||||||
|
|
@ -52,16 +52,16 @@ extern void BoardModelAttrReset(s16, s32);
|
||||||
//// #include "game/board/tutorial.h"
|
//// #include "game/board/tutorial.h"
|
||||||
extern BoardTutorialHookExec(s16, s32);
|
extern BoardTutorialHookExec(s16, s32);
|
||||||
//// #include "game/board/com.h"
|
//// #include "game/board/com.h"
|
||||||
extern void fn_8007185C(s32, s32);
|
extern void BoardComUseItemSet(s32, s32);
|
||||||
//// #include "game/board/overhead.h"
|
//// #include "game/board/overhead.h"
|
||||||
extern void fn_800729A4(s32);
|
extern void BoardViewOverheadExec(s32);
|
||||||
extern void fn_80072DA8(s32);
|
extern void BoardViewMapExec(s32);
|
||||||
//// #include "game/board/dice_roll.h"
|
//// #include "game/board/roll.h"
|
||||||
extern s32 fn_80085CC8(s32);
|
extern s32 fn_80085CC8(s32);
|
||||||
extern void fn_80085EB4(void);
|
extern void fn_80085EB4(void);
|
||||||
//// #include "game/chrman.h"
|
//// #include "game/chrman.h"
|
||||||
extern void CharModelKillIndex(s16);
|
extern void CharModelDataClose(s16);
|
||||||
extern void CharModelSetStepType(s16, s32);
|
extern void CharModelStepTypeSet(s16, s32);
|
||||||
////
|
////
|
||||||
|
|
||||||
static void UpdateJunctionGfx(omObjData*);
|
static void UpdateJunctionGfx(omObjData*);
|
||||||
|
|
@ -82,7 +82,7 @@ s32 DoDebugMove(s32, s16*);
|
||||||
s32 DoSparkSpace(s32, s16*);
|
s32 DoSparkSpace(s32, s16*);
|
||||||
s32 ExecJunction(s32, s16*);
|
s32 ExecJunction(s32, s16*);
|
||||||
s32 MegaPlayerPassFunc(s32, s16);
|
s32 MegaPlayerPassFunc(s32, s16);
|
||||||
s32 BoardPlayerAnimBlendCheck(s32);
|
s32 BoardPlayerMotBlendCheck(s32);
|
||||||
|
|
||||||
typedef struct bitcopy {
|
typedef struct bitcopy {
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -115,7 +115,7 @@ static s16 suitPlayerMdl = -1;
|
||||||
static s16 suitCurrMot = -1;
|
static s16 suitCurrMot = -1;
|
||||||
|
|
||||||
static s32 diceJumpObj[4] = {0, 0, 0, 0};
|
static s32 diceJumpObj[4] = {0, 0, 0, 0};
|
||||||
static s32 animDoneF[4] = {0, 0, 0, 0};
|
static s32 motDoneF[4] = {0, 0, 0, 0};
|
||||||
static s16 bowserSuitMot[5] = {-1, -1, -1, -1, -1};
|
static s16 bowserSuitMot[5] = {-1, -1, -1, -1, -1};
|
||||||
char* lbl_8013993C[] = {
|
char* lbl_8013993C[] = {
|
||||||
"eye1",
|
"eye1",
|
||||||
|
|
@ -179,7 +179,7 @@ void BoardPlayerInit(void) {
|
||||||
|
|
||||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||||
GWPlayer[var_r31].space_curr = temp_r30;
|
GWPlayer[var_r31].space_curr = temp_r30;
|
||||||
fn_80062D90(var_r31);
|
BoardPlayerCornerPosSet(var_r31);
|
||||||
BoardPlayerSizeSet(var_r31, 0);
|
BoardPlayerSizeSet(var_r31, 0);
|
||||||
GWPlayer[var_r31].color = 0;
|
GWPlayer[var_r31].color = 0;
|
||||||
GWPlayer[var_r31].bowser_suit = 0;
|
GWPlayer[var_r31].bowser_suit = 0;
|
||||||
|
|
@ -190,7 +190,7 @@ void BoardPlayerInit(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||||
fn_80062D90(var_r31);
|
BoardPlayerCornerPosSet(var_r31);
|
||||||
if (BoardPlayerAutoSizeGet(var_r31) != 0) {
|
if (BoardPlayerAutoSizeGet(var_r31) != 0) {
|
||||||
BoardPlayerAutoSizeSet(var_r31, BoardPlayerAutoSizeGet(var_r31));
|
BoardPlayerAutoSizeSet(var_r31, BoardPlayerAutoSizeGet(var_r31));
|
||||||
BoardStatusHammerShowSet(var_r31, 0);
|
BoardStatusHammerShowSet(var_r31, 0);
|
||||||
|
|
@ -227,7 +227,7 @@ void BoardPlayerModelInit(void) {
|
||||||
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||||
preTurnHook[var_r31] = 0;
|
preTurnHook[var_r31] = 0;
|
||||||
postTurnHook[var_r31] = 0;
|
postTurnHook[var_r31] = 0;
|
||||||
animDoneF[var_r31] = 0;
|
motDoneF[var_r31] = 0;
|
||||||
diceJumpObj[var_r31] = 0;
|
diceJumpObj[var_r31] = 0;
|
||||||
temp_r22 = &GWPlayer[var_r31];
|
temp_r22 = &GWPlayer[var_r31];
|
||||||
temp_r27 = temp_r22;
|
temp_r27 = temp_r22;
|
||||||
|
|
@ -266,7 +266,7 @@ void BoardPlayerModelInit(void) {
|
||||||
GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff;
|
GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff;
|
||||||
GWPlayerCfg[var_r31].diff = GWPlayerCfg[var_r31].diff;
|
GWPlayerCfg[var_r31].diff = GWPlayerCfg[var_r31].diff;
|
||||||
temp_r27->space_prev = -1;
|
temp_r27->space_prev = -1;
|
||||||
CharModelKillIndex(GWPlayer[var_r31].character);
|
CharModelDataClose(GWPlayer[var_r31].character);
|
||||||
}
|
}
|
||||||
CharModelLayerSetAll(2);
|
CharModelLayerSetAll(2);
|
||||||
}
|
}
|
||||||
|
|
@ -375,14 +375,14 @@ s32 BoardPlayerItemCount(s32 arg0) {
|
||||||
return var_r30;
|
return var_r30;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_80062D90(s32 arg0) {
|
void BoardPlayerCornerPosSet(s32 arg0) {
|
||||||
Vec sp8;
|
Vec sp8;
|
||||||
|
|
||||||
BoardPlayerCurrSpacePosDirGet(arg0, &sp8);
|
BoardPlayerCornerPosGet(arg0, &sp8);
|
||||||
BoardPlayerPosSetV(arg0, &sp8);
|
BoardPlayerPosSetV(arg0, &sp8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardPlayerCurrSpacePosDirGet(s32 arg0, Point3d* arg1) {
|
void BoardPlayerCornerPosGet(s32 arg0, Point3d* arg1) {
|
||||||
s32 var_r31;
|
s32 var_r31;
|
||||||
s32 var_r30;
|
s32 var_r30;
|
||||||
s32 var_r29;
|
s32 var_r29;
|
||||||
|
|
@ -400,7 +400,7 @@ void BoardPlayerCurrSpacePosDirGet(s32 arg0, Point3d* arg1) {
|
||||||
var_r29 += 1;
|
var_r29 += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BoardSpaceDirPosGet(temp_r28, var_r29, arg1);
|
BoardSpaceCornerPosGet(temp_r28, var_r29, arg1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -531,7 +531,7 @@ void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, s32 arg2) {
|
void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) {
|
||||||
PlayerState* player;
|
PlayerState* player;
|
||||||
s32 temp_r29;
|
s32 temp_r29;
|
||||||
|
|
||||||
|
|
@ -607,11 +607,11 @@ void BoardPlayerSizeSet(s32 arg0, s32 arg1) {
|
||||||
temp_r27 = BoardPlayerGet(arg0);
|
temp_r27 = BoardPlayerGet(arg0);
|
||||||
temp_r27->size = arg1;
|
temp_r27->size = arg1;
|
||||||
if (arg1 == 2) {
|
if (arg1 == 2) {
|
||||||
CharModelSetStepType(GWPlayer[arg0].character, 4);
|
CharModelStepTypeSet(GWPlayer[arg0].character, 4);
|
||||||
} else if (arg1 == 1) {
|
} else if (arg1 == 1) {
|
||||||
CharModelSetStepType(GWPlayer[arg0].character, 5);
|
CharModelStepTypeSet(GWPlayer[arg0].character, 5);
|
||||||
} else {
|
} else {
|
||||||
CharModelSetStepType(GWPlayer[arg0].character, 0);
|
CharModelStepTypeSet(GWPlayer[arg0].character, 0);
|
||||||
}
|
}
|
||||||
BoardModelScaleSetV(BoardPlayerModelGet(arg0), &temp_r4[arg1]);
|
BoardModelScaleSetV(BoardPlayerModelGet(arg0), &temp_r4[arg1]);
|
||||||
}
|
}
|
||||||
|
|
@ -682,7 +682,7 @@ void BoardPlayerPostTurnHookSet(s32 arg0, s32 (*arg1)()) {
|
||||||
|
|
||||||
void BoardPlayerTurnExec(s32 arg0) {
|
void BoardPlayerTurnExec(s32 arg0) {
|
||||||
BoardPauseEnableSet(1);
|
BoardPauseEnableSet(1);
|
||||||
fn_8007185C(arg0, -1);
|
BoardComUseItemSet(arg0, -1);
|
||||||
GWSystem.field31_bit4 = 0xF;
|
GWSystem.field31_bit4 = 0xF;
|
||||||
_ClearFlag(0x10016);
|
_ClearFlag(0x10016);
|
||||||
_ClearFlag(0x1000E);
|
_ClearFlag(0x1000E);
|
||||||
|
|
@ -741,11 +741,11 @@ void BoardPlayerTurnRollExec(s32 arg0) {
|
||||||
break;
|
break;
|
||||||
case -3:
|
case -3:
|
||||||
fn_80085EB4();
|
fn_80085EB4();
|
||||||
fn_80072DA8(arg0);
|
BoardViewMapExec(arg0);
|
||||||
break;
|
break;
|
||||||
case -4:
|
case -4:
|
||||||
fn_80085EB4();
|
fn_80085EB4();
|
||||||
fn_800729A4(arg0);
|
BoardViewOverheadExec(arg0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (temp_r30 <= 0);
|
} while (temp_r30 <= 0);
|
||||||
|
|
@ -918,10 +918,10 @@ void BoardPlayerZoomRestore(s32 arg0) {
|
||||||
var_r31 = (var_r31 + 1) & 3;
|
var_r31 = (var_r31 + 1) & 3;
|
||||||
(void)var_r29; //
|
(void)var_r29; //
|
||||||
}
|
}
|
||||||
BoardSpaceDirPosGet(temp_r27, var_r29, &sp18);
|
BoardSpaceCornerPosGet(temp_r27, var_r29, &sp18);
|
||||||
BoardPlayerAnimBlendSet(arg0, 0, 0xF);
|
BoardPlayerMotBlendSet(arg0, 0, 0xF);
|
||||||
|
|
||||||
while (BoardPlayerAnimBlendCheck(arg0) == 0) {
|
while (BoardPlayerMotBlendCheck(arg0) == 0) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
BoardRotateDiceNumbers(arg0);
|
BoardRotateDiceNumbers(arg0);
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,39 @@
|
||||||
#include "game/gamework_data.h"
|
#include "game/gamework_data.h"
|
||||||
#include "game/flag.h"
|
#include "game/flag.h"
|
||||||
#include "game/board/main.h"
|
#include "game/board/main.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
#include "game/board/space.h"
|
#include "game/board/space.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
#include "string.h"
|
||||||
|
|
||||||
|
extern void omVibrate(s16, s16, s16, s16);
|
||||||
|
|
||||||
|
|
||||||
extern s16 BoardStarHostMdlGet(void);
|
extern s16 BoardStarHostMdlGet(void);
|
||||||
extern void BoardModelPosSetV(s16 model, Vec *pos);
|
extern void BoardModelPosSetV(s16 model, Vec *pos);
|
||||||
|
extern s16 BoardModelCreate(s32 file, s32 *data, s32 arg3);
|
||||||
|
extern s16 BoardModelIDGet(s16 model);
|
||||||
|
|
||||||
|
static BoardSpace spaceData[2][256];
|
||||||
|
s16 boardSpaceStarTbl[8];
|
||||||
static GXTexObj spaceHiliteTex;
|
static GXTexObj spaceHiliteTex;
|
||||||
static GXTexObj spaceTex;
|
static GXTexObj spaceTex;
|
||||||
s16 boardSpaceStarTbl[8];
|
|
||||||
static BoardSpace spaceData[2][256];
|
static s8 spaceImgIdx[12] = {
|
||||||
|
0, 1, 2, 7,
|
||||||
|
6, 5, 3, 4,
|
||||||
|
9, 10, 11, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
static s8 spaceHiliteImgIdx[12] = {
|
||||||
|
-1, 0, 1, 1,
|
||||||
|
2, 2, 2, 2,
|
||||||
|
-1, 3, -1, -1
|
||||||
|
};
|
||||||
|
|
||||||
static s16 spaceCnt[2];
|
static s16 spaceCnt[2];
|
||||||
static u32 spaceAttr[2];
|
static u32 spaceAttr[2];
|
||||||
|
|
@ -28,11 +49,13 @@ static s32 spaceDrawCnt;
|
||||||
static s16 spaceDrawF;
|
static s16 spaceDrawF;
|
||||||
|
|
||||||
static s16 spaceDrawMdl = -1;
|
static s16 spaceDrawMdl = -1;
|
||||||
static s16 starMdl = -1;
|
static s16 starPlatMdl = -1;
|
||||||
|
|
||||||
|
static s32 ExecPipeSpace(s32 player, s32 space);
|
||||||
|
|
||||||
|
extern s8 boardTutorialBlockF;
|
||||||
|
extern s32 boardTutorialBlockPos;
|
||||||
|
|
||||||
s32 BoardSpaceRotGet(s32 layer, s32 index, Vec *rot);
|
|
||||||
s32 BoardSpaceStarGet(s32 index);
|
|
||||||
s32 BoardSpaceStarGetCurr(void);
|
|
||||||
|
|
||||||
void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func)
|
void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func)
|
||||||
{
|
{
|
||||||
|
|
@ -69,7 +92,7 @@ s32 BoardSpaceWalkMiniEventExec(void)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
s16 BoardSpaceCountGet(s32 layer)
|
s32 BoardSpaceCountGet(s32 layer)
|
||||||
{
|
{
|
||||||
return spaceCnt[layer];
|
return spaceCnt[layer];
|
||||||
}
|
}
|
||||||
|
|
@ -281,7 +304,7 @@ s32 BoardSpaceLinkTransformGet(s32 flag, Vec *pos, Vec *rot, Vec *scale)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardSpaceStarSet(s32 space)
|
void BoardSpaceHostSet(s32 space)
|
||||||
{
|
{
|
||||||
s16 host_space;
|
s16 host_space;
|
||||||
Vec pos;
|
Vec pos;
|
||||||
|
|
@ -292,9 +315,9 @@ void BoardSpaceStarSet(s32 space)
|
||||||
BoardModelPosSetV(BoardStarHostMdlGet(), &pos);
|
BoardModelPosSetV(BoardStarHostMdlGet(), &pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline s16 BoardStarMdlGet(void)
|
static inline s16 StarPlatGetMdl(void)
|
||||||
{
|
{
|
||||||
return starMdl;
|
return starPlatMdl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline s32 BoardStarSpaceTypeGet(s16 index)
|
static inline s32 BoardStarSpaceTypeGet(s16 index)
|
||||||
|
|
@ -311,13 +334,13 @@ void BoardSpaceStarSetIndex(s32 index)
|
||||||
BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 1);
|
BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 1);
|
||||||
}
|
}
|
||||||
GWSystem.star_pos = index & 0x7;
|
GWSystem.star_pos = index & 0x7;
|
||||||
BoardSpaceStarSet(BoardSpaceStarGetCurr());
|
BoardSpaceHostSet(BoardSpaceStarGetCurr());
|
||||||
space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000);
|
space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000);
|
||||||
BoardSpacePosGet(0, space, &pos);
|
BoardSpacePosGet(0, space, &pos);
|
||||||
BoardModelPosSetV(BoardStarMdlGet(), &pos);
|
BoardModelPosSetV(StarPlatGetMdl(), &pos);
|
||||||
BoardSpaceRotGet(0, space, &rot);
|
BoardSpaceRotGet(0, space, &rot);
|
||||||
BoardModelRotYSet(BoardStarMdlGet(), rot.y);
|
BoardModelRotYSet(StarPlatGetMdl(), rot.y);
|
||||||
BoardModelVisibilitySet(BoardStarMdlGet(), 1);
|
BoardModelVisibilitySet(StarPlatGetMdl(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 BoardSpaceStarGetNext(void)
|
s32 BoardSpaceStarGetNext(void)
|
||||||
|
|
@ -550,8 +573,8 @@ void BoardSpaceLandExec(s32 player, s32 space)
|
||||||
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||||
HuAudFXPlay(842);
|
HuAudFXPlay(842);
|
||||||
BoardCameraViewSet(2);
|
BoardCameraViewSet(2);
|
||||||
BoardPlayerAnimBlendSet(player, 0, 15);
|
BoardPlayerMotBlendSet(player, 0, 15);
|
||||||
while(!BoardPlayerAnimBlendCheck(player)) {
|
while(!BoardPlayerMotBlendCheck(player)) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
|
|
@ -586,4 +609,492 @@ void BoardSpaceLandExec(s32 player, s32 space)
|
||||||
BoardStarExec(player, space);
|
BoardStarExec(player, space);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 BoardSpaceWalkExec(s32 player, s32 space)
|
||||||
|
{
|
||||||
|
s32 is_star;
|
||||||
|
BoardSpace *space_ptr;
|
||||||
|
BoardSpace *star_space;
|
||||||
|
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||||
|
space_ptr = BoardSpaceGet(0, space);
|
||||||
|
if(space_ptr->flag & 0x180000) {
|
||||||
|
BoardTutorialHookExec(25, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
space_ptr = BoardSpaceGet(0, space);
|
||||||
|
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) {
|
||||||
|
is_star = 0;
|
||||||
|
} else {
|
||||||
|
star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]);
|
||||||
|
if(space_ptr == star_space) {
|
||||||
|
is_star = 1;
|
||||||
|
} else {
|
||||||
|
is_star = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(is_star) {
|
||||||
|
BoardStarExec(player, space);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(space_ptr->flag & 0x600000) {
|
||||||
|
u16 mg_param = GWSystem.unk_38;
|
||||||
|
if(BoardPlayerSizeGet(player) == 1) {
|
||||||
|
BoardRotateDiceNumbers(player);
|
||||||
|
BoardMGCreate(mg_param);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(space_ptr->flag & 0x180000) {
|
||||||
|
BoardShopExec(player, space);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(space_ptr->flag & 0x08000000) {
|
||||||
|
BoardBooHouseExec(player, space);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(space_ptr->flag & 0x10000000) {
|
||||||
|
BoardLotteryExec();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(space_ptr->flag & 0x20000000) {
|
||||||
|
ExecPipeSpace(player, space);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 BoardSpaceBlockExec(s32 player, s32 space)
|
||||||
|
{
|
||||||
|
s32 event_exec;
|
||||||
|
BoardSpace *space_ptr;
|
||||||
|
event_exec = 0;
|
||||||
|
if(BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
space_ptr = BoardSpaceGet(0, space);
|
||||||
|
event_exec = 0;
|
||||||
|
if(space == GWSystem.block_pos) {
|
||||||
|
event_exec = 1;
|
||||||
|
}
|
||||||
|
if((int)GWSystem.bonus_star == 0 && BoardPartyFlagGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||||
|
event_exec = 0;
|
||||||
|
}
|
||||||
|
if(BoardCurrGet() == 7 || BoardCurrGet() == 8) {
|
||||||
|
event_exec = 0;
|
||||||
|
}
|
||||||
|
if(event_exec) {
|
||||||
|
BoardBlockExec(player, space);
|
||||||
|
if(_CheckFlag(FLAG_ID_MAKE(1, 11))) {
|
||||||
|
BoardBlockExec(player, space);
|
||||||
|
}
|
||||||
|
BoardSpaceBlockPosSet();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 ExecPipeSpace(s32 player, s32 space)
|
||||||
|
{
|
||||||
|
Vec pos_link;
|
||||||
|
Vec pos;
|
||||||
|
Vec dir;
|
||||||
|
float radius, y_vel;
|
||||||
|
s32 mot_disable;
|
||||||
|
BoardSpace *space_ptr;
|
||||||
|
mot_disable = 0;
|
||||||
|
if(BoardPlayerSizeGet(player) != 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BoardPlayerPosGet(player, &pos);
|
||||||
|
pos.y += 200.0f;
|
||||||
|
space_ptr = BoardSpaceGet(0, space);
|
||||||
|
BoardSpacePosGet(0, space_ptr->link[0], &pos_link);
|
||||||
|
VECSubtract(&pos_link, &pos, &dir);
|
||||||
|
VECNormalize(&dir, &dir);
|
||||||
|
BoardPlayerRotYSet(player, 90-((atan2(dir.z, dir.x)/M_PI)*180));
|
||||||
|
radius = 0.75f*BoardVecDistXZCalc(&pos_link, &pos);
|
||||||
|
BoardPlayerMotionStart(player, 4, 0);
|
||||||
|
y_vel = 0;
|
||||||
|
while(1) {
|
||||||
|
if(BoardVecDistXZCalc(&pos_link, &pos) < 2) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pos.x += (dir.x*radius)/60.0f;
|
||||||
|
pos.z += (dir.z*radius)/60.0f;
|
||||||
|
if(pos.y <= pos_link.y) {
|
||||||
|
pos.y = pos_link.y;
|
||||||
|
if(!mot_disable) {
|
||||||
|
BoardPlayerMotionShiftSet(player, 3, 0, 4, 0x40000001);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pos.y += 10.0f+(-((1/2399.99f)+(1/50.0f))*y_vel*y_vel);
|
||||||
|
y_vel += 1.0f;
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(player, &pos);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceTypeForce(u16 from, u16 to)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
for(i=0; i<spaceCnt[0]; i++) {
|
||||||
|
BoardSpace *space = &spaceData[0][i];
|
||||||
|
if(space->type == from) {
|
||||||
|
space->type = to;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceHide(s32 value)
|
||||||
|
{
|
||||||
|
if(value) {
|
||||||
|
Hu3DModelAttrSet(spaceDrawMdl, 1);
|
||||||
|
} else {
|
||||||
|
Hu3DModelAttrReset(spaceDrawMdl, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Some stack allocation issues. code around BoardPlayerGetCurr is incorrect too
|
||||||
|
static void DrawSpaces(ModelData *model, Mtx matrix)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
Vec player_pos;
|
||||||
|
Vec target;
|
||||||
|
Vec pos;
|
||||||
|
|
||||||
|
Mtx lookat, final, rot_x, rot_y, rot_z, scale;
|
||||||
|
Mtx44 proj;
|
||||||
|
BoardCameraData *camera;
|
||||||
|
if(!spaceDrawF) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
spaceDrawCnt = 0;
|
||||||
|
camera = &boardCamera;
|
||||||
|
BoardCameraPosGet(&pos);
|
||||||
|
BoardCameraTargetGet(&target);
|
||||||
|
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
|
||||||
|
GXSetProjection(proj, GX_PERSPECTIVE);
|
||||||
|
MTXLookAt(lookat, &pos, &camera->up, &target);
|
||||||
|
GXSetViewport(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far);
|
||||||
|
GXSetScissor(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h);
|
||||||
|
{
|
||||||
|
GXColor color = { 0xFF, 0xFF, 0xFF, 0xFF };
|
||||||
|
BoardSpace *space_curr;
|
||||||
|
BoardSpace *space_hilite;
|
||||||
|
PlayerState *player;
|
||||||
|
PlayerState *player_temp;
|
||||||
|
s16 player_mdl;
|
||||||
|
float y_dist;
|
||||||
|
s32 space_img;
|
||||||
|
u16 space_type;
|
||||||
|
float uv_x, uv_y, uv_size;
|
||||||
|
|
||||||
|
GXClearVtxDesc();
|
||||||
|
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||||
|
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||||
|
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||||
|
GXInvalidateTexAll();
|
||||||
|
GXLoadTexObj(&spaceTex, GX_TEXMAP0);
|
||||||
|
GXSetNumTexGens(1);
|
||||||
|
GXSetNumTevStages(1);
|
||||||
|
GXSetTevColor(GX_TEVREG0, color);
|
||||||
|
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
|
||||||
|
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||||
|
GXSetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||||
|
GXSetNumChans(1);
|
||||||
|
GXSetChanAmbColor(GX_COLOR0A0, color);
|
||||||
|
GXSetChanMatColor(GX_COLOR0A0, color);
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
|
||||||
|
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 1, GX_DF_CLAMP, GX_AF_SPOT);
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
|
||||||
|
GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1);
|
||||||
|
GXSetCullMode(GX_CULL_BACK);
|
||||||
|
player = player_temp = BoardPlayerGetCurr();
|
||||||
|
BoardPlayerPosGet(GWSystem.player_curr, &player_pos);
|
||||||
|
player_mdl = BoardModelIDGet(BoardPlayerModelGetCurr());
|
||||||
|
space_curr = &spaceData[0][0];
|
||||||
|
space_hilite = NULL;
|
||||||
|
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||||
|
for(i=0; i<spaceCnt[0]; i++, space_curr++) {
|
||||||
|
if(space_curr->type == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!BoardCameraCullCheck(&space_curr->pos, 200.0f) || (space_curr->flag & spaceAttr[0])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!space_hilite) {
|
||||||
|
if(player_pos.x > space_curr->pos.x-100.0f
|
||||||
|
&& player_pos.z > space_curr->pos.z-100.0f
|
||||||
|
&& player_pos.x < space_curr->pos.x+100.0f
|
||||||
|
&& player_pos.z < space_curr->pos.z+100.0f) {
|
||||||
|
if(player_pos.y-space_curr->pos.y < 0.0f) {
|
||||||
|
y_dist = -(player_pos.y-space_curr->pos.y);
|
||||||
|
} else {
|
||||||
|
y_dist = player_pos.y-space_curr->pos.y;
|
||||||
|
}
|
||||||
|
if(y_dist < 10.0f) {
|
||||||
|
space_hilite = space_curr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
space_type = space_curr->type;
|
||||||
|
space_img = spaceImgIdx[space_type]-1;
|
||||||
|
uv_x = (float)(space_img%4)/4.0f;
|
||||||
|
uv_y = (float)(space_img/4)/4.0f;
|
||||||
|
uv_size = 63.0f/256.0f;
|
||||||
|
MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y));
|
||||||
|
MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z));
|
||||||
|
MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x+90.0f));
|
||||||
|
MTXTrans(final, space_curr->pos.x, 3.0f+space_curr->pos.y, space_curr->pos.z);
|
||||||
|
MTXConcat(rot_x, rot_y, rot_y);
|
||||||
|
MTXConcat(rot_y, rot_z, rot_z);
|
||||||
|
MTXConcat(final, rot_z, final);
|
||||||
|
MTXConcat(lookat, final, final);
|
||||||
|
GXLoadPosMtxImm(final, GX_PNMTX0);
|
||||||
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||||
|
GXPosition3f32(-100, -100, 0);
|
||||||
|
GXTexCoord2f32(uv_x, uv_y);
|
||||||
|
GXPosition3f32(100, -100, 0);
|
||||||
|
GXTexCoord2f32(uv_x+uv_size, uv_y);
|
||||||
|
GXPosition3f32(100, 100, 0);
|
||||||
|
GXTexCoord2f32(uv_x+uv_size, uv_y+uv_size+(1.5f/256.0f));
|
||||||
|
GXPosition3f32(-100, 100, 0);
|
||||||
|
GXTexCoord2f32(uv_x, uv_y+uv_size+(1.5f/256.0f));
|
||||||
|
GXEnd();
|
||||||
|
spaceDrawCnt++;
|
||||||
|
}
|
||||||
|
if(space_hilite) {
|
||||||
|
space_curr = space_hilite;
|
||||||
|
space_type = space_curr->type;
|
||||||
|
if(player->show_next && space_type != 0 && (space_img = spaceHiliteImgIdx[space_type]) >= 0) {
|
||||||
|
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE);
|
||||||
|
GXLoadTexObj(&spaceHiliteTex, GX_TEXMAP0);
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP);
|
||||||
|
uv_x = (float)(space_img%4)/4.0f;
|
||||||
|
uv_y = (float)(space_img/4)/4.0f;
|
||||||
|
uv_size = 63.0f/256.0f;
|
||||||
|
MTXScale(scale, 1.5f, 1.5f, 1.5f);
|
||||||
|
MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y));
|
||||||
|
MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z));
|
||||||
|
MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x+90.0f));
|
||||||
|
MTXTrans(final, space_curr->pos.x, 3.5f+space_curr->pos.y, space_curr->pos.z);
|
||||||
|
MTXConcat(scale, rot_x, rot_x);
|
||||||
|
MTXConcat(rot_x, rot_y, rot_y);
|
||||||
|
MTXConcat(rot_y, rot_z, rot_z);
|
||||||
|
MTXConcat(final, rot_z, final);
|
||||||
|
MTXConcat(lookat, final, final);
|
||||||
|
GXLoadPosMtxImm(final, GX_PNMTX0);
|
||||||
|
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||||
|
GXPosition3f32(-100, -100, 0);
|
||||||
|
GXTexCoord2f32(uv_x, uv_y);
|
||||||
|
GXPosition3f32(100, -100, 0);
|
||||||
|
GXTexCoord2f32(uv_x+uv_size, uv_y);
|
||||||
|
GXPosition3f32(100, 100, 0);
|
||||||
|
GXTexCoord2f32(uv_x+uv_size, uv_y+uv_size);
|
||||||
|
GXPosition3f32(-100, 100, 0);
|
||||||
|
GXTexCoord2f32(uv_x, uv_y+uv_size);
|
||||||
|
GXEnd();
|
||||||
|
spaceDrawCnt++;
|
||||||
|
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
|
||||||
|
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 BoardSpaceRead(s32 layer, s32 data_num)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
int i;
|
||||||
|
BoardSpace *space;
|
||||||
|
u8 *data;
|
||||||
|
s32 star_idx;
|
||||||
|
u8 *data_base;
|
||||||
|
data_base = data = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||||
|
spaceCnt[layer] = *(u32 *)data;
|
||||||
|
data += sizeof(u32);
|
||||||
|
space = &spaceData[layer][0];
|
||||||
|
for(i=0; i<spaceCnt[layer]; i++, space++) {
|
||||||
|
memcpy(&space->pos, data, sizeof(Vec));
|
||||||
|
data += sizeof(Vec);
|
||||||
|
memcpy(&space->rot, data, sizeof(Vec));
|
||||||
|
data += sizeof(Vec);
|
||||||
|
memcpy(&space->scale, data, sizeof(Vec));
|
||||||
|
data += sizeof(Vec);
|
||||||
|
space->flag = *(u32 *)data;
|
||||||
|
data += sizeof(u32);
|
||||||
|
space->type = *(u16 *)data;
|
||||||
|
data += sizeof(u16);
|
||||||
|
space->link_cnt = *(u16 *)data;
|
||||||
|
data += sizeof(u16);
|
||||||
|
for(j=0; j<space->link_cnt; j++) {
|
||||||
|
space->link[j] = (*(u16 *)data)+1;
|
||||||
|
data += sizeof(u16);
|
||||||
|
}
|
||||||
|
if(space->type == 8) {
|
||||||
|
|
||||||
|
space->type = 1;
|
||||||
|
star_idx = (space->flag & 0x70000) >> 16;
|
||||||
|
boardSpaceStarTbl[star_idx] = i+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HuDataClose(data_base);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceCameraSet(u16 mask)
|
||||||
|
{
|
||||||
|
Hu3DModelCameraSet(spaceDrawMdl, mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceBlockPosSet(void)
|
||||||
|
{
|
||||||
|
BoardSpace *space;
|
||||||
|
s32 block_pos;
|
||||||
|
begin:
|
||||||
|
if(boardTutorialBlockF) {
|
||||||
|
GWSystem.block_pos = boardTutorialBlockPos;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
block_pos = BoardRandMod(spaceCnt[0])+1;
|
||||||
|
if(block_pos == GWSystem.block_pos) {
|
||||||
|
goto begin;
|
||||||
|
}
|
||||||
|
space = BoardSpaceGet(0, block_pos);
|
||||||
|
if(space->type != 1) {
|
||||||
|
goto begin;
|
||||||
|
}
|
||||||
|
GWSystem.block_pos = block_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceInit(s32 data_num)
|
||||||
|
{
|
||||||
|
s32 board;
|
||||||
|
BoardJunctionMaskZero();
|
||||||
|
memset(spaceData, 0, sizeof(spaceData));
|
||||||
|
memset(spaceAttr, 0, sizeof(spaceAttr));
|
||||||
|
lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1;
|
||||||
|
spaceDrawF = 0;
|
||||||
|
board = BoardCurrGet();
|
||||||
|
{
|
||||||
|
AnimBmpData *bmp;
|
||||||
|
AnimData *data;
|
||||||
|
void *data_base;
|
||||||
|
s32 size;
|
||||||
|
data = data_base = HuDataSelHeapReadNum(MAKE_DATA_NUM(DATADIR_BOARD, 29), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||||
|
data->bmp = (void *)((u32)data_base+(u32)data->bmp);
|
||||||
|
data->pat = (void *)((u32)data_base+(u32)data->pat);
|
||||||
|
data->bank = (void *)((u32)data_base+(u32)data->bank);
|
||||||
|
bmp = data->bmp;
|
||||||
|
size = bmp->sizeX;
|
||||||
|
spaceHiliteTexFmt = -1;
|
||||||
|
switch(bmp->dataFmt) {
|
||||||
|
case SPRITE_BMP_RGBA8:
|
||||||
|
spaceHiliteTexFmt = GX_TF_RGBA8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SPRITE_BMP_RGB5A3_DUPE:
|
||||||
|
spaceHiliteTexFmt = GX_TF_RGB5A3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SPRITE_BMP_CMPR:
|
||||||
|
spaceHiliteTexFmt = GX_TF_CMPR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
spaceHiliteTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM);
|
||||||
|
bmp->data = (void *)((u32)bmp->data+(u32)data_base);
|
||||||
|
memcpy(spaceHiliteTexData, bmp->data, bmp->dataSize);
|
||||||
|
HuDataClose(data_base);
|
||||||
|
GXInitTexObj(&spaceHiliteTex, spaceHiliteTexData, size, size, spaceHiliteTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||||
|
GXInitTexObjLOD(&spaceHiliteTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
AnimBmpData *bmp;
|
||||||
|
AnimData *data;
|
||||||
|
void *data_base;
|
||||||
|
s32 size;
|
||||||
|
data = data_base = HuDataSelHeapReadNum(MAKE_DATA_NUM(DATADIR_BOARD, 28), MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||||
|
data->bmp = (void *)((u32)data_base+(u32)data->bmp);
|
||||||
|
data->pat = (void *)((u32)data_base+(u32)data->pat);
|
||||||
|
data->bank = (void *)((u32)data_base+(u32)data->bank);
|
||||||
|
bmp = data->bmp;
|
||||||
|
size = bmp->sizeX;
|
||||||
|
spaceTexFmt = -1;
|
||||||
|
switch(bmp->dataFmt) {
|
||||||
|
case SPRITE_BMP_RGBA8:
|
||||||
|
spaceTexFmt = GX_TF_RGBA8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SPRITE_BMP_RGB5A3_DUPE:
|
||||||
|
spaceTexFmt = GX_TF_RGB5A3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SPRITE_BMP_CMPR:
|
||||||
|
spaceTexFmt = GX_TF_CMPR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
spaceTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM);
|
||||||
|
bmp->data = (void *)((u32)bmp->data+(u32)data_base);
|
||||||
|
memcpy(spaceTexData, bmp->data, bmp->dataSize);
|
||||||
|
HuDataClose(data_base);
|
||||||
|
GXInitTexObj(&spaceTex, spaceTexData, size, size, spaceTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||||
|
GXInitTexObjLOD(&spaceTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||||
|
}
|
||||||
|
BoardSpaceRead(0, data_num);
|
||||||
|
spaceDrawMdl = Hu3DHookFuncCreate(DrawSpaces);
|
||||||
|
if(!BoardStartCheck() && !_CheckFlag(FLAG_ID_MAKE(1, 1))) {
|
||||||
|
BoardSpaceBlockPosSet();
|
||||||
|
GWSystem.star_total = 0;
|
||||||
|
GWSystem.star_flag = 0;
|
||||||
|
}
|
||||||
|
if(BoardCurrGet() != 7 && BoardCurrGet() != 8) {
|
||||||
|
starPlatMdl = BoardModelCreate(MAKE_DATA_NUM(DATADIR_BOARD, 6), NULL, 0);
|
||||||
|
BoardModelMotionStart(starPlatMdl, 0, 0x40000001);
|
||||||
|
BoardModelVisibilitySet(starPlatMdl, 0);
|
||||||
|
if(_CheckFlag(FLAG_ID_MAKE(1, 1))) {
|
||||||
|
Vec pos;
|
||||||
|
Vec rot;
|
||||||
|
s16 space;
|
||||||
|
BoardModelVisibilitySet(starPlatMdl, 1);
|
||||||
|
GWSystem.star_flag |= (u8)(1 << GWSystem.star_pos);
|
||||||
|
BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 8);
|
||||||
|
{
|
||||||
|
int space;
|
||||||
|
BoardSpace *space_plat;
|
||||||
|
space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000);
|
||||||
|
BoardSpacePosGet(0, space, &pos);
|
||||||
|
BoardModelPosSetV(StarPlatGetMdl(), &pos);
|
||||||
|
BoardSpaceRotGet(0, space, &rot);
|
||||||
|
BoardModelRotYSet(StarPlatGetMdl(), rot.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spaceDrawF = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardSpaceDestroy(void)
|
||||||
|
{
|
||||||
|
if(spaceDrawMdl >= 0) {
|
||||||
|
Hu3DModelKill(spaceDrawMdl);
|
||||||
|
spaceDrawMdl = -1;
|
||||||
|
}
|
||||||
|
if(spaceHiliteTexData) {
|
||||||
|
HuMemDirectFree(spaceHiliteTexData);
|
||||||
|
spaceHiliteTexData = NULL;
|
||||||
|
}
|
||||||
|
if(spaceTexData) {
|
||||||
|
HuMemDirectFree(spaceTexData);
|
||||||
|
spaceTexData = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
#include "game/board/player.h"
|
#include "game/board/player.h"
|
||||||
#include "game/wipe.h"
|
#include "game/wipe.h"
|
||||||
#include "game/gamework_data.h"
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/hsfex.h"
|
||||||
#include "board_unsplit.h"
|
#include "board_unsplit.h"
|
||||||
#include "unsplit.h"
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
static void WarpInit(s32);
|
static void WarpInit(s32);
|
||||||
|
|
@ -15,10 +15,10 @@ static void WarpImpact(s32);
|
||||||
|
|
||||||
|
|
||||||
extern void omVibrate(s16, s16, s16, s16);
|
extern void omVibrate(s16, s16, s16, s16);
|
||||||
extern void fn_800816CC(s32, s32);
|
extern void BoardCharWheelInit(s32, s32);
|
||||||
extern void fn_80081884(f32);
|
extern void BoardCharWheelSpeedSet(f32);
|
||||||
extern void fn_8008181C(void);
|
extern void BoardCharWheelWait(void);
|
||||||
extern s32 fn_8008186C(void);
|
extern s32 BoardCharWheelResultGet(void);
|
||||||
extern f32 BoardModelMotionTimeGet(s16);
|
extern f32 BoardModelMotionTimeGet(s16);
|
||||||
extern void BoardModelHookReset(s16);
|
extern void BoardModelHookReset(s16);
|
||||||
extern s32 BoardModelHookSet(s16, char*, s16);
|
extern s32 BoardModelHookSet(s16, char*, s16);
|
||||||
|
|
@ -46,7 +46,7 @@ static s8 warpImpactPlayer[4] = {-1, -1, -1, -1};
|
||||||
static void WarpProcess(void);
|
static void WarpProcess(void);
|
||||||
static void WarpKill(void);
|
static void WarpKill(void);
|
||||||
|
|
||||||
void BoardWarpExec(s32 player, s16 space) {
|
void BoardWarpExec(s32 player, s32 space) {
|
||||||
omVibrate(player, 12, 4, 2);
|
omVibrate(player, 12, 4, 2);
|
||||||
warpProcess = HuPrcChildCreate(WarpProcess, 8195, 14336, 0, boardMainProc);
|
warpProcess = HuPrcChildCreate(WarpProcess, 8195, 14336, 0, boardMainProc);
|
||||||
HuPrcDestructorSet2(warpProcess, WarpKill);
|
HuPrcDestructorSet2(warpProcess, WarpKill);
|
||||||
|
|
@ -66,9 +66,9 @@ void WarpProcess(void) {
|
||||||
HuAudFXPlay(842);
|
HuAudFXPlay(842);
|
||||||
BoardCameraViewSet(3);
|
BoardCameraViewSet(3);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
BoardPlayerAnimBlendSet(curr_player, 0, 15);
|
BoardPlayerMotBlendSet(curr_player, 0, 15);
|
||||||
|
|
||||||
while (BoardPlayerAnimBlendCheck(curr_player) == 0) {
|
while (BoardPlayerMotBlendCheck(curr_player) == 0) {
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -77,10 +77,10 @@ void WarpProcess(void) {
|
||||||
BoardTutorialHookExec(18, 0);
|
BoardTutorialHookExec(18, 0);
|
||||||
boardTutorialData[0] = 0;
|
boardTutorialData[0] = 0;
|
||||||
}
|
}
|
||||||
fn_800816CC(curr_player, 3);
|
BoardCharWheelInit(curr_player, 3);
|
||||||
fn_80081884(18.0f);
|
BoardCharWheelSpeedSet(18.0f);
|
||||||
fn_8008181C();
|
BoardCharWheelWait();
|
||||||
warpTarget = fn_8008186C();
|
warpTarget = BoardCharWheelResultGet();
|
||||||
BoardCameraViewSet(1);
|
BoardCameraViewSet(1);
|
||||||
BoardCameraMotionWait();
|
BoardCameraMotionWait();
|
||||||
WarpInit(curr_player);
|
WarpInit(curr_player);
|
||||||
|
|
@ -232,7 +232,7 @@ static void WarpImpact(s32 player) {
|
||||||
BoardModelMotionStart(warpImpactMdl, 0, 0x40000001);
|
BoardModelMotionStart(warpImpactMdl, 0, 0x40000001);
|
||||||
|
|
||||||
for (i = 0; i < warpImpactCnt; i++) {
|
for (i = 0; i < warpImpactCnt; i++) {
|
||||||
s32 player = warpImpactPlayer[i];
|
s16 player = warpImpactPlayer[i];
|
||||||
omVibrate(player, 0xC, 4, 2);
|
omVibrate(player, 0xC, 4, 2);
|
||||||
BoardPlayerMotionStart(player, 6, 0x40000001);
|
BoardPlayerMotionStart(player, 6, 0x40000001);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,6 @@ void BoardWinPause(void) {
|
||||||
|
|
||||||
void BoardWinCreateChoice(s32 pos, u32 mess, s32 portrait, s32 choice) {
|
void BoardWinCreateChoice(s32 pos, u32 mess, s32 portrait, s32 choice) {
|
||||||
s32 i;
|
s32 i;
|
||||||
s32 speed;
|
|
||||||
|
|
||||||
|
|
||||||
winPosIdx = pos;
|
winPosIdx = pos;
|
||||||
|
|
@ -213,13 +212,11 @@ void BoardWinCreateChoice(s32 pos, u32 mess, s32 portrait, s32 choice) {
|
||||||
if (GWSystem.mess_speed == 3) {
|
if (GWSystem.mess_speed == 3) {
|
||||||
GWSystem.mess_speed = 1;
|
GWSystem.mess_speed = 1;
|
||||||
}
|
}
|
||||||
speed = GWSystem.mess_speed;
|
BoardWinSpeedSet(GWMessSpeedGet());
|
||||||
BoardWinSpeedSet(speed);
|
|
||||||
BoardWinPlayerSet(GWSystem.player_curr);
|
BoardWinPlayerSet(GWSystem.player_curr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardWinCreate(s32 pos, u32 mess, s32 portrait) {
|
void BoardWinCreate(s32 pos, u32 mess, s32 portrait) {
|
||||||
s32 speed;
|
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
winPosIdx = pos;
|
winPosIdx = pos;
|
||||||
|
|
@ -250,8 +247,7 @@ void BoardWinCreate(s32 pos, u32 mess, s32 portrait) {
|
||||||
if (GWSystem.mess_speed == 3) {
|
if (GWSystem.mess_speed == 3) {
|
||||||
GWSystem.mess_speed = 1;
|
GWSystem.mess_speed = 1;
|
||||||
}
|
}
|
||||||
speed = GWSystem.mess_speed;
|
BoardWinSpeedSet(GWMessSpeedGet());
|
||||||
BoardWinSpeedSet(speed);
|
|
||||||
BoardWinPlayerSet(GWSystem.player_curr);
|
BoardWinPlayerSet(GWSystem.player_curr);
|
||||||
autoPickF = 0;
|
autoPickF = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -281,14 +277,14 @@ void BoardWinKill(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardWinSetAttr(s32 attr) {
|
void BoardWinAttrSet(s32 attr) {
|
||||||
winAttr |= attr;
|
winAttr |= attr;
|
||||||
if (windowID >= 0) {
|
if (windowID >= 0) {
|
||||||
HuWinAttrSet(windowID, winAttr);
|
HuWinAttrSet(windowID, winAttr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BoardWinResetAttr(s32 attr) {
|
void BoardWinAttrReset(s32 attr) {
|
||||||
winAttr &= ~attr;
|
winAttr &= ~attr;
|
||||||
if (windowID >= 0) {
|
if (windowID >= 0) {
|
||||||
HuWinAttrSet(windowID, winAttr);
|
HuWinAttrSet(windowID, winAttr);
|
||||||
|
|
@ -381,7 +377,7 @@ void BoardWinPlayerSet(s32 player) {
|
||||||
|
|
||||||
void BoardWinStartComKeySet(void) {
|
void BoardWinStartComKeySet(void) {
|
||||||
s32 comkey[4];
|
s32 comkey[4];
|
||||||
s32 speed;
|
s32 delay;
|
||||||
s32 waitnum;
|
s32 waitnum;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
|
|
@ -410,12 +406,12 @@ void BoardWinStartComKeySet(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
speed = GWMessSpeedGet();
|
delay = GWMessDelayGet();
|
||||||
waitnum = HuWinKeyWaitNumGet(winMess);
|
waitnum = HuWinKeyWaitNumGet(winMess);
|
||||||
if (waitnum != 0) {
|
if (waitnum != 0) {
|
||||||
HuWinComKeyReset();
|
HuWinComKeyReset();
|
||||||
for (i = 0; i < waitnum; i++) {
|
for (i = 0; i < waitnum; i++) {
|
||||||
HuWinComKeyWait(comkey[0], comkey[1], comkey[2], comkey[3], speed);
|
HuWinComKeyWait(comkey[0], comkey[1], comkey[2], comkey[3], delay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
145
src/game/esprite.c
Executable file
145
src/game/esprite.c
Executable file
|
|
@ -0,0 +1,145 @@
|
||||||
|
#include "game/esprite.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ u32 unk00;
|
||||||
|
/* 0x04 */ u16 unk04;
|
||||||
|
/* 0x06 */ char unk06[2];
|
||||||
|
/* 0x08 */ AnimData *unk08;
|
||||||
|
} UnkEspriteStruct01; // Size 0xC
|
||||||
|
|
||||||
|
s16 esprite[0x180][2];
|
||||||
|
UnkEspriteStruct01 espanim[0x180];
|
||||||
|
|
||||||
|
static s16 gid;
|
||||||
|
|
||||||
|
void espInit(void) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
gid = HuSprGrpCreate(0x180);
|
||||||
|
for (i = 0; i < 0x180; i++) {
|
||||||
|
esprite[i][0] = i;
|
||||||
|
esprite[i][1] = -1;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 0x180; i++) {
|
||||||
|
espanim[i].unk04 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s16 espEntry(s32 arg0, s16 arg1, s16 arg2) {
|
||||||
|
UnkEspriteStruct01 *var_r30;
|
||||||
|
UnkEspriteStruct01 *var_r31;
|
||||||
|
s16 (*var_r29)[2];
|
||||||
|
void *temp_r26;
|
||||||
|
s16 temp_r25;
|
||||||
|
s16 var_r28;
|
||||||
|
s32 var_r27;
|
||||||
|
|
||||||
|
var_r29 = esprite;
|
||||||
|
for (var_r28 = 0; var_r28 < 0x180; var_r29++, var_r28++) {
|
||||||
|
if (var_r29[0][1] == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (var_r28 == 0x180) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
var_r31 = espanim;
|
||||||
|
var_r30 = NULL;
|
||||||
|
for (var_r27 = 0; var_r27 < 0x180; var_r31++, var_r27++) {
|
||||||
|
if (var_r31->unk04 != 0) {
|
||||||
|
if (var_r31->unk00 == arg0) {
|
||||||
|
var_r30 = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (var_r30 == NULL) {
|
||||||
|
var_r30 = var_r31;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (var_r27 == 0x180) {
|
||||||
|
if (var_r30 == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
temp_r26 = HuDataSelHeapReadNum(arg0, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||||
|
if (temp_r26 == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
var_r30->unk00 = arg0;
|
||||||
|
var_r30->unk08 = HuSprAnimRead(temp_r26);
|
||||||
|
var_r31 = var_r30;
|
||||||
|
}
|
||||||
|
temp_r25 = HuSprCreate(var_r31->unk08, arg1, arg2);
|
||||||
|
if (temp_r25 == -1) {
|
||||||
|
if (var_r30 != NULL) {
|
||||||
|
HuSprAnimKill(var_r31->unk08);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
var_r31->unk04++;
|
||||||
|
var_r29[0][1] = var_r31 - espanim;
|
||||||
|
HuSprGrpMemberSet(gid, var_r29[0][0], temp_r25);
|
||||||
|
return var_r28;
|
||||||
|
}
|
||||||
|
|
||||||
|
void espKill(s16 arg0) {
|
||||||
|
HuSprGrpMemberKill(gid, esprite[arg0][0]);
|
||||||
|
espanim[esprite[arg0][1]].unk04--;
|
||||||
|
esprite[arg0][1] = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s16 espGrpIDGet(void) {
|
||||||
|
return gid;
|
||||||
|
}
|
||||||
|
|
||||||
|
void espDispOn(s16 arg0) {
|
||||||
|
HuSprAttrReset(gid, esprite[arg0][0], 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espDispOff(s16 arg0) {
|
||||||
|
HuSprAttrSet(gid, esprite[arg0][0], 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espAttrSet(s16 arg0, u16 arg1) {
|
||||||
|
HuSprAttrSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espAttrReset(s16 arg0, u16 arg1) {
|
||||||
|
HuSprAttrReset(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espPosSet(s16 arg0, float arg1, float arg2) {
|
||||||
|
HuSprPosSet(gid, esprite[arg0][0], arg1, arg2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espScaleSet(s16 arg0, float arg1, float arg2) {
|
||||||
|
HuSprScaleSet(gid, esprite[arg0][0], arg1, arg2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espZRotSet(s16 arg0, float arg1) {
|
||||||
|
HuSprZRotSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espTPLvlSet(s16 arg0, float arg1) {
|
||||||
|
HuSprTPLvlSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espColorSet(s16 arg0, u8 arg1, u8 arg2, u8 arg3) {
|
||||||
|
HuSprColorSet(gid, esprite[arg0][0], arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espSpeedSet(s16 arg0, float arg1) {
|
||||||
|
HuSprSpeedSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espBankSet(s16 arg0, s16 arg1) {
|
||||||
|
HuSprBankSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espDrawNoSet(s16 arg0, s16 arg1) {
|
||||||
|
HuSprDrawNoSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void espPriSet(s16 arg0, s16 arg1) {
|
||||||
|
HuSprPriSet(gid, esprite[arg0][0], arg1);
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "common.h"
|
#include "game/gamework_data.h"
|
||||||
#include "stdarg.h"
|
#include "stdarg.h"
|
||||||
#include "stdio.h"
|
#include "stdio.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,26 +2,25 @@
|
||||||
|
|
||||||
static u32 frand_seed;
|
static u32 frand_seed;
|
||||||
|
|
||||||
static inline u32 frandom(void)
|
static inline u32 frandom(u32 param)
|
||||||
{
|
{
|
||||||
u32 rand = frand_seed;
|
|
||||||
s32 rand2, rand3;
|
s32 rand2, rand3;
|
||||||
|
|
||||||
if (rand == 0) {
|
if (param == 0) {
|
||||||
rand = rand8();
|
param = rand8();
|
||||||
rand = rand ^ (s64)OSGetTime();
|
param = param ^ (s64)OSGetTime();
|
||||||
rand ^= 0xD826BC89;
|
param ^= 0xD826BC89;
|
||||||
}
|
}
|
||||||
|
|
||||||
rand2 = rand / (u32)0x1F31D;
|
rand2 = param / (u32)0x1F31D;
|
||||||
rand3 = rand - (rand2 * 0x1F31D);
|
rand3 = param - (rand2 * 0x1F31D);
|
||||||
rand = rand2 * 0xB14;
|
param = rand2 * 0xB14;
|
||||||
rand = rand - rand3 * 0x41A7;
|
param = param - rand3 * 0x41A7;
|
||||||
return rand;
|
return param;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 frand(void) {
|
u32 frand(void) {
|
||||||
return frand_seed = frandom();
|
return frand_seed = frandom(frand_seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 frandf(void) {
|
f32 frandf(void) {
|
||||||
|
|
@ -34,7 +33,7 @@ f32 frandf(void) {
|
||||||
|
|
||||||
u32 frandmod(u32 arg0) {
|
u32 frandmod(u32 arg0) {
|
||||||
u32 ret;
|
u32 ret;
|
||||||
frand_seed = frandom();
|
frand_seed = frandom(frand_seed);
|
||||||
ret = (frand_seed & 0x7FFFFFFF)%arg0;
|
ret = (frand_seed & 0x7FFFFFFF)%arg0;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -134,7 +134,7 @@ void GWGameStatReset(void)
|
||||||
ResetBoardSettings();
|
ResetBoardSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 GWMessSpeedGet(void)
|
s32 GWMessDelayGet(void)
|
||||||
{
|
{
|
||||||
if(GWSystem.mess_delay > 48) {
|
if(GWSystem.mess_delay > 48) {
|
||||||
GWSystem.mess_speed = 1;
|
GWSystem.mess_speed = 1;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue