diff --git a/ld/gamefiles.inc b/ld/gamefiles.inc index 5fb53d6c9..a6a1e137d 100644 --- a/ld/gamefiles.inc +++ b/ld/gamefiles.inc @@ -179,7 +179,8 @@ build/ROMID/game/game_197600.o (section); \ build/ROMID/game/game_1999b0.o (section); \ build/ROMID/game/game_19aa80.o (section); \ - build/ROMID/game/training.o (section); \ - build/ROMID/game/game_1a3340.o (section); \ + build/ROMID/game/training/training.o (section); \ + build/ROMID/game/training/menus.o (section); \ + build/ROMID/game/game_1a7560.o (section); \ build/ROMID/game/data/data_02e820.o (section); \ build/ROMID/game/game_1a78b0.o (section); diff --git a/src/game/activemenu/activemenu.c b/src/game/activemenu/activemenu.c index 116e05042..b5fa474f0 100644 --- a/src/game/activemenu/activemenu.c +++ b/src/game/activemenu/activemenu.c @@ -22,7 +22,7 @@ #include "game/game_190260.h" #include "game/game_197600.h" #include "game/gfxmemory.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pdoptions.h" diff --git a/src/game/cheats.c b/src/game/cheats.c index 4163ede70..3e7ade65c 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -11,7 +11,7 @@ #include "game/data/data_02da90.h" #include "game/game_111600.h" #include "game/game_127910.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/lang.h" #include "game/pak/pak.h" diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 038cf66f4..6502a198e 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -39,7 +39,7 @@ #include "game/game_165670.h" #include "game/core.h" #include "game/music.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/lang.h" #include "game/pad.h" diff --git a/src/game/core.c b/src/game/core.c index 02c549582..2a339d747 100644 --- a/src/game/core.c +++ b/src/game/core.c @@ -92,7 +92,7 @@ #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pak/pak.h" diff --git a/src/game/data/data_0160b0.c b/src/game/data/data_0160b0.c index 75f2d540a..783266126 100644 --- a/src/game/data/data_0160b0.c +++ b/src/game/data/data_0160b0.c @@ -7,7 +7,7 @@ #include "game/endscreen.h" #include "game/utils.h" #include "game/mplayer/ingame.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "gvars/gvars.h" #include "game/data/data_000000.h" #include "game/data/data_0160b0.h" diff --git a/src/game/data/data_01a3a0.c b/src/game/data/data_01a3a0.c index 2e0e2b0a9..e135da98c 100644 --- a/src/game/data/data_01a3a0.c +++ b/src/game/data/data_01a3a0.c @@ -12,7 +12,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "gvars/gvars.h" #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 36413199f..88b739a31 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -12,7 +12,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "game/data/data_0160b0.h" #include "game/data/data_020df0.h" #include "gvars/gvars.h" diff --git a/src/game/data/data_0258c0.c b/src/game/data/data_0258c0.c index 6be7a0608..b9e79011d 100644 --- a/src/game/data/data_0258c0.c +++ b/src/game/data/data_0258c0.c @@ -12,7 +12,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "game/data/data_0160b0.h" #include "game/data/data_020df0.h" #include "gvars/gvars.h" diff --git a/src/game/data/data_02a0e0.c b/src/game/data/data_02a0e0.c index fdda0fbb3..cc2662737 100644 --- a/src/game/data/data_02a0e0.c +++ b/src/game/data/data_02a0e0.c @@ -12,7 +12,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "game/data/data_0160b0.h" #include "game/data/data_02a0e0.h" #include "stagesetup.h" diff --git a/src/game/data/data_02da90.c b/src/game/data/data_02da90.c index ae0009fb2..e27b3dbd1 100644 --- a/src/game/data/data_02da90.c +++ b/src/game/data/data_02da90.c @@ -12,7 +12,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "game/data/data_0160b0.h" #include "game/data/data_020df0.h" #include "stagesetup.h" diff --git a/src/game/data/data_02e820.c b/src/game/data/data_02e820.c index 1268753d9..bfa6c6499 100644 --- a/src/game/data/data_02e820.c +++ b/src/game/data/data_02e820.c @@ -12,7 +12,8 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/mplayer/scenarios.h" -#include "game/game_1a3340.h" +#include "game/training/menus.h" +#include "game/game_1a7560.h" #include "game/data/data_0160b0.h" #include "game/data/data_020df0.h" #include "stagesetup.h" diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index df3f726cc..979a7d6d9 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -24,7 +24,7 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/setup.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/mplayer/mplayer.h" #include "gvars/gvars.h" diff --git a/src/game/game_02cde0.c b/src/game/game_02cde0.c index 3a407e5b3..2e0260a23 100644 --- a/src/game/game_02cde0.c +++ b/src/game/game_02cde0.c @@ -15,7 +15,7 @@ #include "game/game_096750.h" #include "game/game_0b28d0.h" #include "game/core.h" -#include "game/game_1a3340.h" +#include "game/game_1a7560.h" #include "game/mplayer/mplayer.h" #include "game/pad.h" #include "game/propobj.h" diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index 420a2e05f..1e1bbb678 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -27,7 +27,7 @@ #include "game/sparks/sparks.h" #include "game/game_157db0.h" #include "game/game_190260.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/pad.h" #include "game/propobj.h" #include "game/splat.h" diff --git a/src/game/game_091e10.c b/src/game/game_091e10.c index c0b89fbdf..67b9530ad 100644 --- a/src/game/game_091e10.c +++ b/src/game/game_091e10.c @@ -11,7 +11,7 @@ #include "game/game_091e10.h" #include "game/game_0b28d0.h" #include "game/game_157db0.h" -#include "game/game_1a3340.h" +#include "game/game_1a7560.h" #include "game/propobj.h" #include "gvars/gvars.h" #include "lib/lib_1a500.h" diff --git a/src/game/game_095320.c b/src/game/game_095320.c index 526fd4158..88ea9389b 100644 --- a/src/game/game_095320.c +++ b/src/game/game_095320.c @@ -17,7 +17,7 @@ #include "game/game_111600.h" #include "game/game_127910.h" #include "game/core.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/propobj.h" #include "gvars/gvars.h" diff --git a/src/game/game_096360.c b/src/game/game_096360.c index 2209b7a2f..5e24cd082 100644 --- a/src/game/game_096360.c +++ b/src/game/game_096360.c @@ -10,7 +10,7 @@ #include "game/game_095320.h" #include "game/game_096360.h" #include "game/game_0b3350.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/propobj.h" #include "gvars/gvars.h" #include "lib/lib_12dc0.h" diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 9910da681..77c9634c4 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -36,8 +36,8 @@ #include "game/core.h" #include "game/game_16e810.h" #include "game/game_176080.h" -#include "game/training.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pak/pak.h" diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 9927778ed..4cb8693c2 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -48,8 +48,8 @@ #include "game/mplayer/ingame.h" #include "game/mplayer/scenarios.h" #include "game/radar.h" -#include "game/training.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" +#include "game/training/training.h" #include "game/mplayer/mplayer.h" #include "game/pad.h" #include "game/pak/pak.h" diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 0028b1a16..899273b4c 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -29,7 +29,7 @@ #include "game/game_16e810.h" #include "game/mplayer/setup.h" #include "game/game_19aa80.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" #include "game/game_1a78b0.h" #include "game/gamefile.h" #include "game/lang.h" diff --git a/src/game/game_102240.c b/src/game/game_102240.c index ae3924257..25cb4dd11 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -27,7 +27,7 @@ #include "game/core.h" #include "game/mplayer/ingame.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" diff --git a/src/game/game_111600.c b/src/game/game_111600.c index bb5318acf..d4ceff001 100644 --- a/src/game/game_111600.c +++ b/src/game/game_111600.c @@ -11,7 +11,7 @@ #include "game/game_097ba0.h" #include "game/game_0b0420.h" #include "game/game_111600.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "gvars/gvars.h" #include "lib/main.h" diff --git a/src/game/game_19aa80.c b/src/game/game_19aa80.c index 9b74ba268..374115bc1 100644 --- a/src/game/game_19aa80.c +++ b/src/game/game_19aa80.c @@ -16,7 +16,7 @@ #include "game/mplayer/setup.h" #include "game/game_190260.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pad.h" diff --git a/src/game/game_1a7560.c b/src/game/game_1a7560.c new file mode 100644 index 000000000..74194a4d0 --- /dev/null +++ b/src/game/game_1a7560.c @@ -0,0 +1,221 @@ +#include +#include "constants.h" +#include "game/chr/chraction.h" +#include "game/data/data_000000.h" +#include "game/data/data_0083d0.h" +#include "game/data/data_00e460.h" +#include "game/data/data_0160b0.h" +#include "game/data/data_01a3a0.h" +#include "game/data/data_020df0.h" +#include "game/data/data_02da90.h" +#include "game/data/data_02e820.h" +#include "game/ceil.h" +#include "game/game_097ba0.h" +#include "game/game_0b0420.h" +#include "game/game_0b3350.h" +#include "game/game_0e0770.h" +#include "game/game_0f09f0.h" +#include "game/game_102240.h" +#include "game/game_111600.h" +#include "game/game_1531a0.h" +#include "game/game_166e40.h" +#include "game/game_16e810.h" +#include "game/game_173a00.h" +#include "game/game_1a7560.h" +#include "game/lang.h" +#include "game/mplayer/mplayer.h" +#include "game/pdoptions.h" +#include "gvars/gvars.h" +#include "lib/lib_09660.h" +#include "lib/main.h" +#include "lib/lib_13130.h" +#include "lib/lib_1a500.h" +#include "types.h" + +GLOBAL_ASM( +glabel func0f1a7560 +/* f1a7560: 27bdff70 */ addiu $sp,$sp,-144 +/* f1a7564: afb3002c */ sw $s3,0x2c($sp) +/* f1a7568: 00809825 */ or $s3,$a0,$zero +/* f1a756c: 30a4ffff */ andi $a0,$a1,0xffff +/* f1a7570: afbf0044 */ sw $ra,0x44($sp) +/* f1a7574: afb20028 */ sw $s2,0x28($sp) +/* f1a7578: afb10024 */ sw $s1,0x24($sp) +/* f1a757c: 00e08825 */ or $s1,$a3,$zero +/* f1a7580: 00c09025 */ or $s2,$a2,$zero +/* f1a7584: afbe0040 */ sw $s8,0x40($sp) +/* f1a7588: afb7003c */ sw $s7,0x3c($sp) +/* f1a758c: afb60038 */ sw $s6,0x38($sp) +/* f1a7590: afb50034 */ sw $s5,0x34($sp) +/* f1a7594: afb40030 */ sw $s4,0x30($sp) +/* f1a7598: afb00020 */ sw $s0,0x20($sp) +/* f1a759c: afa50094 */ sw $a1,0x94($sp) +/* f1a75a0: 0fc59ca5 */ jal fileGetUnk04 +/* f1a75a4: afa40058 */ sw $a0,0x58($sp) +/* f1a75a8: 00408025 */ or $s0,$v0,$zero +/* f1a75ac: 0fc59ca0 */ jal fileGetSize +/* f1a75b0: 8fa40058 */ lw $a0,0x58($sp) +/* f1a75b4: afa20088 */ sw $v0,0x88($sp) +/* f1a75b8: afa00074 */ sw $zero,0x74($sp) +/* f1a75bc: 02602025 */ or $a0,$s3,$zero +/* f1a75c0: 27a50074 */ addiu $a1,$sp,0x74 +/* f1a75c4: 0c008c67 */ jal func0002319c +/* f1a75c8: 27a6006c */ addiu $a2,$sp,0x6c +/* f1a75cc: 8fb6006c */ lw $s6,0x6c($sp) +/* f1a75d0: 3c1700ff */ lui $s7,0xff +/* f1a75d4: 36f7ffff */ ori $s7,$s7,0xffff +/* f1a75d8: 12c00049 */ beqz $s6,.L0f1a7700 +/* f1a75dc: 02c0a825 */ or $s5,$s6,$zero +/* f1a75e0: 8fb80088 */ lw $t8,0x88($sp) +/* f1a75e4: 02d77824 */ and $t7,$s6,$s7 +/* f1a75e8: 026f2021 */ addu $a0,$s3,$t7 +/* f1a75ec: 0093c823 */ subu $t9,$a0,$s3 +/* f1a75f0: 03193023 */ subu $a2,$t8,$t9 +/* f1a75f4: 02061823 */ subu $v1,$s0,$a2 +/* f1a75f8: 02644023 */ subu $t0,$s3,$a0 +/* f1a75fc: 00684821 */ addu $t1,$v1,$t0 +/* f1a7600: afa90084 */ sw $t1,0x84($sp) +/* f1a7604: 0fc5d7bd */ jal func0f175ef4 +/* f1a7608: 00732821 */ addu $a1,$v1,$s3 +/* f1a760c: 8fbe00a0 */ lw $s8,0xa0($sp) +/* f1a7610: 8e640018 */ lw $a0,0x18($s3) +/* f1a7614: 86650016 */ lh $a1,0x16($s3) +/* f1a7618: 02323823 */ subu $a3,$s1,$s2 +/* f1a761c: 0fc5cd0d */ jal func0f173434 +/* f1a7620: 03c03025 */ or $a2,$s8,$zero +/* f1a7624: 8faa0074 */ lw $t2,0x74($sp) +/* f1a7628: 5140002b */ beqzl $t2,.L0f1a76d8 +/* f1a762c: 02b74824 */ and $t1,$s5,$s7 +/* f1a7630: 8fb0006c */ lw $s0,0x6c($sp) +.L0f1a7634: +/* f1a7634: 8fb10074 */ lw $s1,0x74($sp) +/* f1a7638: 02602025 */ or $a0,$s3,$zero +/* f1a763c: 27a50074 */ addiu $a1,$sp,0x74 +/* f1a7640: 0c008c67 */ jal func0002319c +/* f1a7644: 27a6006c */ addiu $a2,$sp,0x6c +/* f1a7648: 8fb6006c */ lw $s6,0x6c($sp) +/* f1a764c: 02602025 */ or $a0,$s3,$zero +/* f1a7650: 02202825 */ or $a1,$s1,$zero +/* f1a7654: 12c00004 */ beqz $s6,.L0f1a7668 +/* f1a7658: 02003025 */ or $a2,$s0,$zero +/* f1a765c: 02d0a023 */ subu $s4,$s6,$s0 +/* f1a7660: 10000006 */ b .L0f1a767c +/* f1a7664: 02179024 */ and $s2,$s0,$s7 +.L0f1a7668: +/* f1a7668: 8fab0088 */ lw $t3,0x88($sp) +/* f1a766c: 02179024 */ and $s2,$s0,$s7 +/* f1a7670: 01736021 */ addu $t4,$t3,$s3 +/* f1a7674: 01936823 */ subu $t5,$t4,$s3 +/* f1a7678: 01b2a023 */ subu $s4,$t5,$s2 +.L0f1a767c: +/* f1a767c: 0c008cc5 */ jal func00023314 +/* f1a7680: 02a03825 */ or $a3,$s5,$zero +/* f1a7684: 962e0000 */ lhu $t6,0x0($s1) +/* f1a7688: 24010018 */ addiu $at,$zero,0x18 +/* f1a768c: 02727821 */ addu $t7,$s3,$s2 +/* f1a7690: 15c10004 */ bne $t6,$at,.L0f1a76a4 +/* f1a7694: 8fb80084 */ lw $t8,0x84($sp) +/* f1a7698: 8e220004 */ lw $v0,0x4($s1) +/* f1a769c: 10000002 */ b .L0f1a76a8 +/* f1a76a0: 8c43000c */ lw $v1,0xc($v0) +.L0f1a76a4: +/* f1a76a4: 00001825 */ or $v1,$zero,$zero +.L0f1a76a8: +/* f1a76a8: 02b7c824 */ and $t9,$s5,$s7 +/* f1a76ac: 02793021 */ addu $a2,$s3,$t9 +/* f1a76b0: 01f82021 */ addu $a0,$t7,$t8 +/* f1a76b4: 02802825 */ or $a1,$s4,$zero +/* f1a76b8: 03c03825 */ or $a3,$s8,$zero +/* f1a76bc: 0fc5d5b0 */ jal func0f1756c0 +/* f1a76c0: afa30010 */ sw $v1,0x10($sp) +/* f1a76c4: 8fa80074 */ lw $t0,0x74($sp) +/* f1a76c8: 02a2a821 */ addu $s5,$s5,$v0 +/* f1a76cc: 5500ffd9 */ bnezl $t0,.L0f1a7634 +/* f1a76d0: 8fb0006c */ lw $s0,0x6c($sp) +/* f1a76d4: 02b74824 */ and $t1,$s5,$s7 +.L0f1a76d8: +/* f1a76d8: 02695021 */ addu $t2,$s3,$t1 +/* f1a76dc: 01533023 */ subu $a2,$t2,$s3 +/* f1a76e0: 24c6000f */ addiu $a2,$a2,0xf +/* f1a76e4: 2401fff0 */ addiu $at,$zero,-16 +/* f1a76e8: 00c15824 */ and $t3,$a2,$at +/* f1a76ec: 01603025 */ or $a2,$t3,$zero +/* f1a76f0: 8fa40058 */ lw $a0,0x58($sp) +/* f1a76f4: 02602825 */ or $a1,$s3,$zero +/* f1a76f8: 0fc59caa */ jal func0f1672a8 +/* f1a76fc: 8fa700a4 */ lw $a3,0xa4($sp) +.L0f1a7700: +/* f1a7700: 8fbf0044 */ lw $ra,0x44($sp) +/* f1a7704: 8fb00020 */ lw $s0,0x20($sp) +/* f1a7708: 8fb10024 */ lw $s1,0x24($sp) +/* f1a770c: 8fb20028 */ lw $s2,0x28($sp) +/* f1a7710: 8fb3002c */ lw $s3,0x2c($sp) +/* f1a7714: 8fb40030 */ lw $s4,0x30($sp) +/* f1a7718: 8fb50034 */ lw $s5,0x34($sp) +/* f1a771c: 8fb60038 */ lw $s6,0x38($sp) +/* f1a7720: 8fb7003c */ lw $s7,0x3c($sp) +/* f1a7724: 8fbe0040 */ lw $s8,0x40($sp) +/* f1a7728: 03e00008 */ jr $ra +/* f1a772c: 27bd0090 */ addiu $sp,$sp,0x90 +); + +GLOBAL_ASM( +glabel func0f1a7730 +/* f1a7730: 8c820004 */ lw $v0,0x4($a0) +/* f1a7734: 3c010001 */ lui $at,0x1 +/* f1a7738: 3c0e8009 */ lui $t6,%hi(var80089990) +/* f1a773c: 0041082b */ sltu $at,$v0,$at +/* f1a7740: 10200012 */ beqz $at,.L0f1a778c +/* f1a7744: 00000000 */ nop +/* f1a7748: 8dce9990 */ lw $t6,%lo(var80089990)($t6) +/* f1a774c: 00021c00 */ sll $v1,$v0,0x10 +/* f1a7750: 00037c03 */ sra $t7,$v1,0x10 +/* f1a7754: 11c0000d */ beqz $t6,.L0f1a778c +/* f1a7758: 01e01825 */ or $v1,$t7,$zero +/* f1a775c: 3c188009 */ lui $t8,%hi(var80089990) +/* f1a7760: 27059990 */ addiu $a1,$t8,%lo(var80089990) +/* f1a7764: 8ca60000 */ lw $a2,0x0($a1) +/* f1a7768: 84d90000 */ lh $t9,0x0($a2) +.L0f1a776c: +/* f1a776c: 54790004 */ bnel $v1,$t9,.L0f1a7780 +/* f1a7770: 8ca60004 */ lw $a2,0x4($a1) +/* f1a7774: 03e00008 */ jr $ra +/* f1a7778: ac860004 */ sw $a2,0x4($a0) +/* f1a777c: 8ca60004 */ lw $a2,0x4($a1) +.L0f1a7780: +/* f1a7780: 24a50004 */ addiu $a1,$a1,0x4 +/* f1a7784: 54c0fff9 */ bnezl $a2,.L0f1a776c +/* f1a7788: 84d90000 */ lh $t9,0x0($a2) +.L0f1a778c: +/* f1a778c: 03e00008 */ jr $ra +/* f1a7790: 00000000 */ nop +); + +void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3) +{ + void *ptr; + + var8005d9a0 = 6; + + if (arg1) { + ptr = func0f167200(fileid, 0x11, arg1, arg2); + } else { + ptr = func0f1670fc(fileid, 0x11); + } + + func0f1a7730(ptr); + func00022a24(ptr, 0x5000000, ptr); + func0f1a7560(ptr, fileid, 0x5000000, ptr, arg3, arg1 == NULL); + + return ptr; +} + +void *fileLoad(u16 fileid) +{ + return func0f1a7794(fileid, 0, 0, 0); +} + +void *func0f1a7878(u16 fileid, u8 *arg1, s32 arg2) +{ + return func0f1a7794(fileid, arg1, arg2, 0); +} diff --git a/src/game/gamefile.c b/src/game/gamefile.c index f0d3d2a44..f3d312396 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -14,7 +14,7 @@ #include "game/game_0d4690.h" #include "game/game_157db0.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/mplayer/mplayer.h" #include "game/pak/pak.h" diff --git a/src/game/menu/items.c b/src/game/menu/items.c index 4d7d49d86..837c88d3a 100644 --- a/src/game/menu/items.c +++ b/src/game/menu/items.c @@ -18,7 +18,7 @@ #include "game/game_1531a0.h" #include "game/core.h" #include "game/game_19aa80.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pdoptions.h" diff --git a/src/game/propobj.c b/src/game/propobj.c index c75158cc4..68dd82563 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -56,7 +56,7 @@ #include "game/mplayer/scenarios.h" #include "game/game_190260.h" #include "game/game_1999b0.h" -#include "game/training.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pad.h" diff --git a/src/game/title.c b/src/game/title.c index 98f964d59..b1e334ca1 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -20,7 +20,8 @@ #include "game/game_166e40.h" #include "game/core.h" #include "game/music.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" +#include "game/game_1a7560.h" #include "game/lang.h" #include "game/propobj.h" #include "gvars/gvars.h" diff --git a/src/game/game_1a3340.c b/src/game/training/menus.c similarity index 95% rename from src/game/game_1a3340.c rename to src/game/training/menus.c index 9fbfccc9e..01989a97f 100644 --- a/src/game/game_1a3340.c +++ b/src/game/training/menus.c @@ -21,8 +21,8 @@ #include "game/game_166e40.h" #include "game/game_16e810.h" #include "game/game_173a00.h" -#include "game/training.h" -#include "game/game_1a3340.h" +#include "game/training/menus.h" +#include "game/training/training.h" #include "game/lang.h" #include "game/mplayer/mplayer.h" #include "game/pdoptions.h" @@ -3834,191 +3834,3 @@ struct menudialog *ciGetFrWeaponListMenuDialog(void) { return &g_FrWeaponListMenuDialog; } - -GLOBAL_ASM( -glabel func0f1a7560 -/* f1a7560: 27bdff70 */ addiu $sp,$sp,-144 -/* f1a7564: afb3002c */ sw $s3,0x2c($sp) -/* f1a7568: 00809825 */ or $s3,$a0,$zero -/* f1a756c: 30a4ffff */ andi $a0,$a1,0xffff -/* f1a7570: afbf0044 */ sw $ra,0x44($sp) -/* f1a7574: afb20028 */ sw $s2,0x28($sp) -/* f1a7578: afb10024 */ sw $s1,0x24($sp) -/* f1a757c: 00e08825 */ or $s1,$a3,$zero -/* f1a7580: 00c09025 */ or $s2,$a2,$zero -/* f1a7584: afbe0040 */ sw $s8,0x40($sp) -/* f1a7588: afb7003c */ sw $s7,0x3c($sp) -/* f1a758c: afb60038 */ sw $s6,0x38($sp) -/* f1a7590: afb50034 */ sw $s5,0x34($sp) -/* f1a7594: afb40030 */ sw $s4,0x30($sp) -/* f1a7598: afb00020 */ sw $s0,0x20($sp) -/* f1a759c: afa50094 */ sw $a1,0x94($sp) -/* f1a75a0: 0fc59ca5 */ jal fileGetUnk04 -/* f1a75a4: afa40058 */ sw $a0,0x58($sp) -/* f1a75a8: 00408025 */ or $s0,$v0,$zero -/* f1a75ac: 0fc59ca0 */ jal fileGetSize -/* f1a75b0: 8fa40058 */ lw $a0,0x58($sp) -/* f1a75b4: afa20088 */ sw $v0,0x88($sp) -/* f1a75b8: afa00074 */ sw $zero,0x74($sp) -/* f1a75bc: 02602025 */ or $a0,$s3,$zero -/* f1a75c0: 27a50074 */ addiu $a1,$sp,0x74 -/* f1a75c4: 0c008c67 */ jal func0002319c -/* f1a75c8: 27a6006c */ addiu $a2,$sp,0x6c -/* f1a75cc: 8fb6006c */ lw $s6,0x6c($sp) -/* f1a75d0: 3c1700ff */ lui $s7,0xff -/* f1a75d4: 36f7ffff */ ori $s7,$s7,0xffff -/* f1a75d8: 12c00049 */ beqz $s6,.L0f1a7700 -/* f1a75dc: 02c0a825 */ or $s5,$s6,$zero -/* f1a75e0: 8fb80088 */ lw $t8,0x88($sp) -/* f1a75e4: 02d77824 */ and $t7,$s6,$s7 -/* f1a75e8: 026f2021 */ addu $a0,$s3,$t7 -/* f1a75ec: 0093c823 */ subu $t9,$a0,$s3 -/* f1a75f0: 03193023 */ subu $a2,$t8,$t9 -/* f1a75f4: 02061823 */ subu $v1,$s0,$a2 -/* f1a75f8: 02644023 */ subu $t0,$s3,$a0 -/* f1a75fc: 00684821 */ addu $t1,$v1,$t0 -/* f1a7600: afa90084 */ sw $t1,0x84($sp) -/* f1a7604: 0fc5d7bd */ jal func0f175ef4 -/* f1a7608: 00732821 */ addu $a1,$v1,$s3 -/* f1a760c: 8fbe00a0 */ lw $s8,0xa0($sp) -/* f1a7610: 8e640018 */ lw $a0,0x18($s3) -/* f1a7614: 86650016 */ lh $a1,0x16($s3) -/* f1a7618: 02323823 */ subu $a3,$s1,$s2 -/* f1a761c: 0fc5cd0d */ jal func0f173434 -/* f1a7620: 03c03025 */ or $a2,$s8,$zero -/* f1a7624: 8faa0074 */ lw $t2,0x74($sp) -/* f1a7628: 5140002b */ beqzl $t2,.L0f1a76d8 -/* f1a762c: 02b74824 */ and $t1,$s5,$s7 -/* f1a7630: 8fb0006c */ lw $s0,0x6c($sp) -.L0f1a7634: -/* f1a7634: 8fb10074 */ lw $s1,0x74($sp) -/* f1a7638: 02602025 */ or $a0,$s3,$zero -/* f1a763c: 27a50074 */ addiu $a1,$sp,0x74 -/* f1a7640: 0c008c67 */ jal func0002319c -/* f1a7644: 27a6006c */ addiu $a2,$sp,0x6c -/* f1a7648: 8fb6006c */ lw $s6,0x6c($sp) -/* f1a764c: 02602025 */ or $a0,$s3,$zero -/* f1a7650: 02202825 */ or $a1,$s1,$zero -/* f1a7654: 12c00004 */ beqz $s6,.L0f1a7668 -/* f1a7658: 02003025 */ or $a2,$s0,$zero -/* f1a765c: 02d0a023 */ subu $s4,$s6,$s0 -/* f1a7660: 10000006 */ b .L0f1a767c -/* f1a7664: 02179024 */ and $s2,$s0,$s7 -.L0f1a7668: -/* f1a7668: 8fab0088 */ lw $t3,0x88($sp) -/* f1a766c: 02179024 */ and $s2,$s0,$s7 -/* f1a7670: 01736021 */ addu $t4,$t3,$s3 -/* f1a7674: 01936823 */ subu $t5,$t4,$s3 -/* f1a7678: 01b2a023 */ subu $s4,$t5,$s2 -.L0f1a767c: -/* f1a767c: 0c008cc5 */ jal func00023314 -/* f1a7680: 02a03825 */ or $a3,$s5,$zero -/* f1a7684: 962e0000 */ lhu $t6,0x0($s1) -/* f1a7688: 24010018 */ addiu $at,$zero,0x18 -/* f1a768c: 02727821 */ addu $t7,$s3,$s2 -/* f1a7690: 15c10004 */ bne $t6,$at,.L0f1a76a4 -/* f1a7694: 8fb80084 */ lw $t8,0x84($sp) -/* f1a7698: 8e220004 */ lw $v0,0x4($s1) -/* f1a769c: 10000002 */ b .L0f1a76a8 -/* f1a76a0: 8c43000c */ lw $v1,0xc($v0) -.L0f1a76a4: -/* f1a76a4: 00001825 */ or $v1,$zero,$zero -.L0f1a76a8: -/* f1a76a8: 02b7c824 */ and $t9,$s5,$s7 -/* f1a76ac: 02793021 */ addu $a2,$s3,$t9 -/* f1a76b0: 01f82021 */ addu $a0,$t7,$t8 -/* f1a76b4: 02802825 */ or $a1,$s4,$zero -/* f1a76b8: 03c03825 */ or $a3,$s8,$zero -/* f1a76bc: 0fc5d5b0 */ jal func0f1756c0 -/* f1a76c0: afa30010 */ sw $v1,0x10($sp) -/* f1a76c4: 8fa80074 */ lw $t0,0x74($sp) -/* f1a76c8: 02a2a821 */ addu $s5,$s5,$v0 -/* f1a76cc: 5500ffd9 */ bnezl $t0,.L0f1a7634 -/* f1a76d0: 8fb0006c */ lw $s0,0x6c($sp) -/* f1a76d4: 02b74824 */ and $t1,$s5,$s7 -.L0f1a76d8: -/* f1a76d8: 02695021 */ addu $t2,$s3,$t1 -/* f1a76dc: 01533023 */ subu $a2,$t2,$s3 -/* f1a76e0: 24c6000f */ addiu $a2,$a2,0xf -/* f1a76e4: 2401fff0 */ addiu $at,$zero,-16 -/* f1a76e8: 00c15824 */ and $t3,$a2,$at -/* f1a76ec: 01603025 */ or $a2,$t3,$zero -/* f1a76f0: 8fa40058 */ lw $a0,0x58($sp) -/* f1a76f4: 02602825 */ or $a1,$s3,$zero -/* f1a76f8: 0fc59caa */ jal func0f1672a8 -/* f1a76fc: 8fa700a4 */ lw $a3,0xa4($sp) -.L0f1a7700: -/* f1a7700: 8fbf0044 */ lw $ra,0x44($sp) -/* f1a7704: 8fb00020 */ lw $s0,0x20($sp) -/* f1a7708: 8fb10024 */ lw $s1,0x24($sp) -/* f1a770c: 8fb20028 */ lw $s2,0x28($sp) -/* f1a7710: 8fb3002c */ lw $s3,0x2c($sp) -/* f1a7714: 8fb40030 */ lw $s4,0x30($sp) -/* f1a7718: 8fb50034 */ lw $s5,0x34($sp) -/* f1a771c: 8fb60038 */ lw $s6,0x38($sp) -/* f1a7720: 8fb7003c */ lw $s7,0x3c($sp) -/* f1a7724: 8fbe0040 */ lw $s8,0x40($sp) -/* f1a7728: 03e00008 */ jr $ra -/* f1a772c: 27bd0090 */ addiu $sp,$sp,0x90 -); - -GLOBAL_ASM( -glabel func0f1a7730 -/* f1a7730: 8c820004 */ lw $v0,0x4($a0) -/* f1a7734: 3c010001 */ lui $at,0x1 -/* f1a7738: 3c0e8009 */ lui $t6,%hi(var80089990) -/* f1a773c: 0041082b */ sltu $at,$v0,$at -/* f1a7740: 10200012 */ beqz $at,.L0f1a778c -/* f1a7744: 00000000 */ nop -/* f1a7748: 8dce9990 */ lw $t6,%lo(var80089990)($t6) -/* f1a774c: 00021c00 */ sll $v1,$v0,0x10 -/* f1a7750: 00037c03 */ sra $t7,$v1,0x10 -/* f1a7754: 11c0000d */ beqz $t6,.L0f1a778c -/* f1a7758: 01e01825 */ or $v1,$t7,$zero -/* f1a775c: 3c188009 */ lui $t8,%hi(var80089990) -/* f1a7760: 27059990 */ addiu $a1,$t8,%lo(var80089990) -/* f1a7764: 8ca60000 */ lw $a2,0x0($a1) -/* f1a7768: 84d90000 */ lh $t9,0x0($a2) -.L0f1a776c: -/* f1a776c: 54790004 */ bnel $v1,$t9,.L0f1a7780 -/* f1a7770: 8ca60004 */ lw $a2,0x4($a1) -/* f1a7774: 03e00008 */ jr $ra -/* f1a7778: ac860004 */ sw $a2,0x4($a0) -/* f1a777c: 8ca60004 */ lw $a2,0x4($a1) -.L0f1a7780: -/* f1a7780: 24a50004 */ addiu $a1,$a1,0x4 -/* f1a7784: 54c0fff9 */ bnezl $a2,.L0f1a776c -/* f1a7788: 84d90000 */ lh $t9,0x0($a2) -.L0f1a778c: -/* f1a778c: 03e00008 */ jr $ra -/* f1a7790: 00000000 */ nop -); - -void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3) -{ - void *ptr; - - var8005d9a0 = 6; - - if (arg1) { - ptr = func0f167200(fileid, 0x11, arg1, arg2); - } else { - ptr = func0f1670fc(fileid, 0x11); - } - - func0f1a7730(ptr); - func00022a24(ptr, 0x5000000, ptr); - func0f1a7560(ptr, fileid, 0x5000000, ptr, arg3, arg1 == NULL); - - return ptr; -} - -void *fileLoad(u16 fileid) -{ - return func0f1a7794(fileid, 0, 0, 0); -} - -void *func0f1a7878(u16 fileid, u8 *arg1, s32 arg2) -{ - return func0f1a7794(fileid, arg1, arg2, 0); -} diff --git a/src/game/training.c b/src/game/training/training.c similarity index 99% rename from src/game/training.c rename to src/game/training/training.c index 5c30e75e7..c3da6c104 100644 --- a/src/game/training.c +++ b/src/game/training/training.c @@ -25,8 +25,8 @@ #include "game/game_150820.h" #include "game/game_1531a0.h" #include "game/game_157db0.h" -#include "game/training.h" -#include "game/game_1a3340.h" +#include "game/training/training.h" +#include "game/training/training.h" #include "game/gamefile.h" #include "game/lang.h" #include "game/pad.h" diff --git a/src/include/game/game_1a7560.h b/src/include/game/game_1a7560.h new file mode 100644 index 000000000..823e7f629 --- /dev/null +++ b/src/include/game/game_1a7560.h @@ -0,0 +1,11 @@ +#ifndef IN_GAME_GAME_1A7560_H +#define IN_GAME_GAME_1A7560_H +#include +#include "types.h" + +void func0f1a7560(void *ptr, u16 fileid, u32 arg2, void *arg3, s32 arg4, bool arg5); +void func0f1a7730(void *ptr); +void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3); +void *fileLoad(u16 fileid); + +#endif diff --git a/src/include/game/game_1a3340.h b/src/include/game/training/menus.h similarity index 93% rename from src/include/game/game_1a3340.h rename to src/include/game/training/menus.h index d0d5da4dd..4714b929a 100644 --- a/src/include/game/game_1a3340.h +++ b/src/include/game/training/menus.h @@ -1,5 +1,5 @@ -#ifndef IN_GAME_GAME_1A3340_H -#define IN_GAME_GAME_1A3340_H +#ifndef IN_GAME_TRAINING_MENUS_H +#define IN_GAME_TRAINING_MENUS_H #include #include "types.h" @@ -33,10 +33,6 @@ char *htMenuTextTimeTakenValue(struct menuitem *item); char *bioMenuTextName(struct menuitem *item); char *ciMenuTextHangarBioSubheading(struct menuitem *item); struct menudialog *ciGetFrWeaponListMenuDialog(void); -void func0f1a7560(void *ptr, u16 fileid, u32 arg2, void *arg3, s32 arg4, bool arg5); -void func0f1a7730(void *ptr); -void *func0f1a7794(u16 fileid, u8 *arg1, s32 arg2, s32 arg3); -void *fileLoad(u16 fileid); s32 frTrainingInfoMenuDialog(u32 operation, struct menudialog *dialog, union handlerdata *data); s32 frTrainingStatsMenuDialog(u32 operation, struct menudialog *dialog, union handlerdata *data); s32 ciCharacterProfileMenuDialog(u32 operation, struct menudialog *dialog, union handlerdata *data); diff --git a/src/include/game/training.h b/src/include/game/training/training.h similarity index 98% rename from src/include/game/training.h rename to src/include/game/training/training.h index 37bce3df8..1f67e736d 100644 --- a/src/include/game/training.h +++ b/src/include/game/training/training.h @@ -1,5 +1,5 @@ -#ifndef IN_GAME_TRAINING_H -#define IN_GAME_TRAINING_H +#ifndef IN_GAME_TRAINING_TRAINING_H +#define IN_GAME_TRAINING_TRAINING_H #include #include "types.h"