diff --git a/ld/stage1.ld b/ld/stage1.ld index d9dbc09aa..5828042d6 100644 --- a/ld/stage1.ld +++ b/ld/stage1.ld @@ -354,6 +354,7 @@ SECTIONS src/game/game_00c490.o (.text); src/game/game_0109d0.o (.text); src/game/game_011110.o (.text); + src/game/game_012450.o (.text); src/game/game_0125a0.o (.text); src/game/game_013260.o (.text); src/game/game_013540.o (.text); @@ -442,6 +443,7 @@ SECTIONS src/game/game_00c490.o (.rodata); src/game/game_0109d0.o (.rodata); src/game/game_011110.o (.rodata); + src/game/game_012450.o (.rodata); src/game/game_0125a0.o (.rodata); src/game/game_013260.o (.rodata); src/game/game_013540.o (.rodata); diff --git a/src/game/cheats.c b/src/game/cheats.c index 58f4d02aa..0035d2d57 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -165,7 +165,7 @@ void cheatsActivate(void) (1 << CHEAT_PSYCHOSISGUN - 32) | (1 << CHEAT_PP9I - 32) | (1 << CHEAT_CC13 - 32) | - (1 << CHEAT_KLO1313 - 32) | + (1 << CHEAT_KL01313 - 32) | (1 << CHEAT_KF7SPECIAL - 32) | (1 << CHEAT_ZZT - 32) | (1 << CHEAT_DMC - 32) | diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 782587ffd..3ff08261e 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -42,6 +42,7 @@ #include "library/library_16110.h" #include "library/library_1a500.h" #include "library/library_233c0.h" +#include "library/library_4a360.h" const u32 var7f1a8680[] = {0xb8d1b717}; const u32 var7f1a8684[] = {0x00000000}; @@ -1219,7 +1220,7 @@ glabel func0f01e250 /* f01e4cc: 27bd0030 */ addiu $sp,$sp,0x30 ); -u32 getNumChrs(void) +s32 getNumChrs(void) { return g_NumChrsA; } @@ -3979,7 +3980,7 @@ glabel func0f020b14 struct prop *func0f020cc8(s32 arg0, s32 arg1, s32 arg2, f32 arg3, s32 arg4) { - struct prop *prop = func0f060358(); + struct prop *prop = propAllocate(); if (prop) { prop = func0f020b14(prop, arg0, arg1, arg2, arg3, arg4); @@ -5907,7 +5908,7 @@ glabel func0f022624 /* f022944: 00000000 */ sll $zero,$zero,0x0 /* f022948: 00002825 */ or $a1,$zero,$zero .L0f02294c: -/* f02294c: 0fc2a58a */ jal func0f0a9628 +/* f02294c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f022950: 24040014 */ addiu $a0,$zero,0x14 .L0f022954: /* f022954: 3c02800a */ lui $v0,0x800a diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index fd4f4f1ee..657714882 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -7122,7 +7122,7 @@ bool aiShowObj(void) struct weaponobj *weapon = (struct weaponobj *) obj; if (weapon->weapon_id == WEAPON_CAMSPY) { - func0f011630(); + currentPlayerInitEyespy(); } } } @@ -7823,7 +7823,7 @@ glabel ai00f4 */ bool ai00f5(void) { - g_8007073c = 1; + var8007073c = 1; g_Vars.aioffset += 2; return false; @@ -7836,7 +7836,7 @@ bool ai00f6(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - if (g_8007073c == 2) { + if (var8007073c == 2) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); } else { g_Vars.aioffset += 3; @@ -12873,7 +12873,7 @@ bool aiClearInventory(void) if (g_Vars.currentplayer == g_Vars.bond || g_Vars.currentplayer == g_Vars.coop) { func0f111600(); g_Vars.currentplayer->unk00c4 = 0; - func0f111d88(1); + currentPlayerGiveWeapon(1); currentPlayerEquipWeaponInCutscene(1); } } diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index 18bfdec58..8a7d3c95d 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -2995,8 +2995,8 @@ glabel func0f00eb64 /* f00ec2c: 00402025 */ or $a0,$v0,$zero /* f00ec30: 0fc59c3f */ jal func0f1670fc /* f00ec34: afa60060 */ sw $a2,0x60($sp) -/* f00ec38: 3c03800a */ lui $v1,%hi(var8009d050) -/* f00ec3c: 2463d050 */ addiu $v1,$v1,%lo(var8009d050) +/* f00ec38: 3c03800a */ lui $v1,%hi(g_GeCreditsData) +/* f00ec3c: 2463d050 */ addiu $v1,$v1,%lo(g_GeCreditsData) /* f00ec40: ac620000 */ sw $v0,0x0($v1) /* f00ec44: 8fa40060 */ lw $a0,0x60($sp) /* f00ec48: 0fc5b878 */ jal func0f16e1e0 diff --git a/src/game/game_011110.c b/src/game/game_011110.c index 770c31e57..589e397c5 100644 --- a/src/game/game_011110.c +++ b/src/game/game_011110.c @@ -1,6 +1,7 @@ #include #include "constants.h" #include "gvars/gvars.h" +#include "math.h" #include "setup/setup_000000.h" #include "setup/setup_0160b0.h" #include "setup/setup_020df0.h" @@ -18,6 +19,8 @@ #include "game/game_157db0.h" #include "game/game_176d70.h" #include "game/game_187770.h" +#include "library/library_16110.h" +#include "library/library_233c0.h" const u32 var7f1a8240[] = {0x7f011a44}; const u32 var7f1a8244[] = {0x7f011a90}; @@ -425,7 +428,7 @@ glabel func0f011560 ); GLOBAL_ASM( -glabel func0f011630 +glabel currentPlayerInitEyespy /* f011630: 27bdff78 */ addiu $sp,$sp,-136 /* f011634: afb00018 */ sw $s0,0x18($sp) /* f011638: 3c10800a */ lui $s0,%hi(g_Vars) @@ -611,7 +614,7 @@ glabel func0f011630 ); GLOBAL_ASM( -glabel func0f0118f4 +glabel currentPlayerInit /* f0118f4: 27bdff58 */ addiu $sp,$sp,-168 /* f0118f8: 3c0f8006 */ lui $t7,%hi(var800623a4) /* f0118fc: afbf0034 */ sw $ra,0x34($sp) @@ -737,7 +740,7 @@ glabel func0f0118f4 /* f011ad4: 10000004 */ beqz $zero,.L0f011ae8 /* f011ad8: 8fb80080 */ lw $t8,0x80($sp) .L0f011adc: -/* f011adc: 0fc44762 */ jal func0f111d88 +/* f011adc: 0fc44762 */ jal currentPlayerGiveWeapon /* f011ae0: 8e040004 */ lw $a0,0x4($s0) /* f011ae4: 8fb80080 */ lw $t8,0x80($sp) .L0f011ae8: @@ -771,7 +774,7 @@ glabel func0f0118f4 /* f011b4c: 118d0004 */ beq $t4,$t5,.L0f011b60 /* f011b50: 00000000 */ sll $zero,$zero,0x0 /* f011b54: 8e040004 */ lw $a0,0x4($s0) -/* f011b58: 0fc2a58a */ jal func0f0a9628 +/* f011b58: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011b5c: 8e050008 */ lw $a1,0x8($s0) .L0f011b60: /* f011b60: 10000049 */ beqz $zero,.L0f011c88 @@ -842,7 +845,7 @@ glabel func0f0118f4 /* f011c5c: 00000000 */ sll $zero,$zero,0x0 /* f011c60: 944e000c */ lhu $t6,0xc($v0) .L0f011c64: -/* f011c64: 2442000c */ addiu $v0,$v0,%lo(var800a000c) +/* f011c64: 2442000c */ addiu $v0,$v0,12 /* f011c68: 55c0fffe */ bnezl $t6,.L0f011c64 /* f011c6c: 944e000c */ lhu $t6,0xc($v0) /* f011c70: 944f0002 */ lhu $t7,0x2($v0) @@ -859,110 +862,110 @@ glabel func0f0118f4 /* f011c90: 5441ff65 */ bnel $v0,$at,.L0f011a28 /* f011c94: 2c41000c */ sltiu $at,$v0,0xc .L0f011c98: -/* f011c98: 0fc44762 */ jal func0f111d88 +/* f011c98: 0fc44762 */ jal currentPlayerGiveWeapon /* f011c9c: 24040001 */ addiu $a0,$zero,0x1 /* f011ca0: 0fc41b99 */ jal cheatIsActive /* f011ca4: 24040008 */ addiu $a0,$zero,0x8 /* f011ca8: 10400006 */ beqz $v0,.L0f011cc4 /* f011cac: 00000000 */ sll $zero,$zero,0x0 -/* f011cb0: 0fc44762 */ jal func0f111d88 +/* f011cb0: 0fc44762 */ jal currentPlayerGiveWeapon /* f011cb4: 24040009 */ addiu $a0,$zero,0x9 /* f011cb8: 2404000a */ addiu $a0,$zero,0xa -/* f011cbc: 0fc2a58a */ jal func0f0a9628 +/* f011cbc: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011cc0: 24050050 */ addiu $a1,$zero,0x50 .L0f011cc4: /* f011cc4: 0fc41b99 */ jal cheatIsActive /* f011cc8: 24040009 */ addiu $a0,$zero,0x9 /* f011ccc: 10400006 */ beqz $v0,.L0f011ce8 /* f011cd0: 00000000 */ sll $zero,$zero,0x0 -/* f011cd4: 0fc44762 */ jal func0f111d88 +/* f011cd4: 0fc44762 */ jal currentPlayerGiveWeapon /* f011cd8: 24040016 */ addiu $a0,$zero,0x16 /* f011cdc: 24040006 */ addiu $a0,$zero,0x6 -/* f011ce0: 0fc2a58a */ jal func0f0a9628 +/* f011ce0: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011ce4: 24050050 */ addiu $a1,$zero,0x50 .L0f011ce8: /* f011ce8: 0fc41b99 */ jal cheatIsActive /* f011cec: 24040001 */ addiu $a0,$zero,0x1 /* f011cf0: 10400006 */ beqz $v0,.L0f011d0c /* f011cf4: 00000000 */ sll $zero,$zero,0x0 -/* f011cf8: 0fc44762 */ jal func0f111d88 +/* f011cf8: 0fc44762 */ jal currentPlayerGiveWeapon /* f011cfc: 24040031 */ addiu $a0,$zero,0x31 /* f011d00: 24040014 */ addiu $a0,$zero,0x14 -/* f011d04: 0fc2a58a */ jal func0f0a9628 +/* f011d04: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011d08: 24051c20 */ addiu $a1,$zero,0x1c20 .L0f011d0c: /* f011d0c: 0fc41b99 */ jal cheatIsActive /* f011d10: 24040015 */ addiu $a0,$zero,0x15 /* f011d14: 10400003 */ beqz $v0,.L0f011d24 /* f011d18: 00000000 */ sll $zero,$zero,0x0 -/* f011d1c: 0fc44762 */ jal func0f111d88 +/* f011d1c: 0fc44762 */ jal currentPlayerGiveWeapon /* f011d20: 2404002d */ addiu $a0,$zero,0x2d .L0f011d24: /* f011d24: 0fc41b99 */ jal cheatIsActive /* f011d28: 2404001a */ addiu $a0,$zero,0x1a /* f011d2c: 10400003 */ beqz $v0,.L0f011d3c /* f011d30: 00000000 */ sll $zero,$zero,0x0 -/* f011d34: 0fc44762 */ jal func0f111d88 +/* f011d34: 0fc44762 */ jal currentPlayerGiveWeapon /* f011d38: 24040037 */ addiu $a0,$zero,0x37 .L0f011d3c: /* f011d3c: 0fc41b99 */ jal cheatIsActive /* f011d40: 2404001b */ addiu $a0,$zero,0x1b /* f011d44: 10400006 */ beqz $v0,.L0f011d60 /* f011d48: 00000000 */ sll $zero,$zero,0x0 -/* f011d4c: 0fc44762 */ jal func0f111d88 +/* f011d4c: 0fc44762 */ jal currentPlayerGiveWeapon /* f011d50: 24040018 */ addiu $a0,$zero,0x18 /* f011d54: 24040008 */ addiu $a0,$zero,0x8 -/* f011d58: 0fc2a58a */ jal func0f0a9628 +/* f011d58: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011d5c: 2405000a */ addiu $a1,$zero,0xa .L0f011d60: /* f011d60: 0fc41b99 */ jal cheatIsActive /* f011d64: 2404001c */ addiu $a0,$zero,0x1c /* f011d68: 10400006 */ beqz $v0,.L0f011d84 /* f011d6c: 00000000 */ sll $zero,$zero,0x0 -/* f011d70: 0fc44762 */ jal func0f111d88 +/* f011d70: 0fc44762 */ jal currentPlayerGiveWeapon /* f011d74: 24040015 */ addiu $a0,$zero,0x15 /* f011d78: 24040004 */ addiu $a0,$zero,0x4 -/* f011d7c: 0fc2a58a */ jal func0f0a9628 +/* f011d7c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011d80: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011d84: /* f011d84: 0fc41b99 */ jal cheatIsActive /* f011d88: 2404001d */ addiu $a0,$zero,0x1d /* f011d8c: 10400003 */ beqz $v0,.L0f011d9c /* f011d90: 00000000 */ sll $zero,$zero,0x0 -/* f011d94: 0fc44762 */ jal func0f111d88 +/* f011d94: 0fc44762 */ jal currentPlayerGiveWeapon /* f011d98: 2404002f */ addiu $a0,$zero,0x2f .L0f011d9c: /* f011d9c: 0fc41b99 */ jal cheatIsActive /* f011da0: 2404001e */ addiu $a0,$zero,0x1e /* f011da4: 10400009 */ beqz $v0,.L0f011dcc /* f011da8: 00000000 */ sll $zero,$zero,0x0 -/* f011dac: 0fc44762 */ jal func0f111d88 +/* f011dac: 0fc44762 */ jal currentPlayerGiveWeapon /* f011db0: 24040012 */ addiu $a0,$zero,0x12 /* f011db4: 24040004 */ addiu $a0,$zero,0x4 -/* f011db8: 0fc2a58a */ jal func0f0a9628 +/* f011db8: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011dbc: 240500c8 */ addiu $a1,$zero,0xc8 /* f011dc0: 2404000b */ addiu $a0,$zero,0xb -/* f011dc4: 0fc2a58a */ jal func0f0a9628 +/* f011dc4: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011dc8: 24050014 */ addiu $a1,$zero,0x14 .L0f011dcc: /* f011dcc: 0fc41b99 */ jal cheatIsActive /* f011dd0: 2404001f */ addiu $a0,$zero,0x1f /* f011dd4: 10400006 */ beqz $v0,.L0f011df0 /* f011dd8: 00000000 */ sll $zero,$zero,0x0 -/* f011ddc: 0fc44762 */ jal func0f111d88 +/* f011ddc: 0fc44762 */ jal currentPlayerGiveWeapon /* f011de0: 2404000e */ addiu $a0,$zero,0xe /* f011de4: 24040002 */ addiu $a0,$zero,0x2 -/* f011de8: 0fc2a58a */ jal func0f0a9628 +/* f011de8: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011dec: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011df0: /* f011df0: 0fc41b99 */ jal cheatIsActive /* f011df4: 24040020 */ addiu $a0,$zero,0x20 /* f011df8: 10400006 */ beqz $v0,.L0f011e14 /* f011dfc: 00000000 */ sll $zero,$zero,0x0 -/* f011e00: 0fc44762 */ jal func0f111d88 +/* f011e00: 0fc44762 */ jal currentPlayerGiveWeapon /* f011e04: 24040007 */ addiu $a0,$zero,0x7 /* f011e08: 24040001 */ addiu $a0,$zero,0x1 -/* f011e0c: 0fc2a58a */ jal func0f0a9628 +/* f011e0c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011e10: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011e14: /* f011e14: 0fc41b99 */ jal cheatIsActive @@ -974,93 +977,93 @@ glabel func0f0118f4 /* f011e2c: 10400009 */ beqz $v0,.L0f011e54 /* f011e30: 24040016 */ addiu $a0,$zero,0x16 .L0f011e34: -/* f011e34: 0fc2a58a */ jal func0f0a9628 +/* f011e34: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011e38: 24050004 */ addiu $a1,$zero,0x4 /* f011e3c: 0fc41b99 */ jal cheatIsActive /* f011e40: 24040021 */ addiu $a0,$zero,0x21 /* f011e44: 10400003 */ beqz $v0,.L0f011e54 /* f011e48: 00000000 */ sll $zero,$zero,0x0 -/* f011e4c: 0fc44762 */ jal func0f111d88 +/* f011e4c: 0fc44762 */ jal currentPlayerGiveWeapon /* f011e50: 2404002c */ addiu $a0,$zero,0x2c .L0f011e54: /* f011e54: 0fc41b99 */ jal cheatIsActive /* f011e58: 24040022 */ addiu $a0,$zero,0x22 /* f011e5c: 10400006 */ beqz $v0,.L0f011e78 /* f011e60: 00000000 */ sll $zero,$zero,0x0 -/* f011e64: 0fc44762 */ jal func0f111d88 +/* f011e64: 0fc44762 */ jal currentPlayerGiveWeapon /* f011e68: 24040024 */ addiu $a0,$zero,0x24 /* f011e6c: 24040001 */ addiu $a0,$zero,0x1 -/* f011e70: 0fc2a58a */ jal func0f0a9628 +/* f011e70: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011e74: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011e78: /* f011e78: 0fc41b99 */ jal cheatIsActive /* f011e7c: 24040023 */ addiu $a0,$zero,0x23 /* f011e80: 10400006 */ beqz $v0,.L0f011e9c /* f011e84: 00000000 */ sll $zero,$zero,0x0 -/* f011e88: 0fc44762 */ jal func0f111d88 +/* f011e88: 0fc44762 */ jal currentPlayerGiveWeapon /* f011e8c: 24040025 */ addiu $a0,$zero,0x25 /* f011e90: 24040004 */ addiu $a0,$zero,0x4 -/* f011e94: 0fc2a58a */ jal func0f0a9628 +/* f011e94: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011e98: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011e9c: /* f011e9c: 0fc41b99 */ jal cheatIsActive /* f011ea0: 24040024 */ addiu $a0,$zero,0x24 /* f011ea4: 10400006 */ beqz $v0,.L0f011ec0 /* f011ea8: 00000000 */ sll $zero,$zero,0x0 -/* f011eac: 0fc44762 */ jal func0f111d88 +/* f011eac: 0fc44762 */ jal currentPlayerGiveWeapon /* f011eb0: 24040026 */ addiu $a0,$zero,0x26 /* f011eb4: 24040002 */ addiu $a0,$zero,0x2 -/* f011eb8: 0fc2a58a */ jal func0f0a9628 +/* f011eb8: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011ebc: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011ec0: /* f011ec0: 0fc41b99 */ jal cheatIsActive /* f011ec4: 24040025 */ addiu $a0,$zero,0x25 /* f011ec8: 10400006 */ beqz $v0,.L0f011ee4 /* f011ecc: 00000000 */ sll $zero,$zero,0x0 -/* f011ed0: 0fc44762 */ jal func0f111d88 +/* f011ed0: 0fc44762 */ jal currentPlayerGiveWeapon /* f011ed4: 24040027 */ addiu $a0,$zero,0x27 /* f011ed8: 24040004 */ addiu $a0,$zero,0x4 -/* f011edc: 0fc2a58a */ jal func0f0a9628 +/* f011edc: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011ee0: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011ee4: /* f011ee4: 0fc41b99 */ jal cheatIsActive /* f011ee8: 24040026 */ addiu $a0,$zero,0x26 /* f011eec: 10400006 */ beqz $v0,.L0f011f08 /* f011ef0: 00000000 */ sll $zero,$zero,0x0 -/* f011ef4: 0fc44762 */ jal func0f111d88 +/* f011ef4: 0fc44762 */ jal currentPlayerGiveWeapon /* f011ef8: 24040028 */ addiu $a0,$zero,0x28 /* f011efc: 24040002 */ addiu $a0,$zero,0x2 -/* f011f00: 0fc2a58a */ jal func0f0a9628 +/* f011f00: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011f04: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011f08: /* f011f08: 0fc41b99 */ jal cheatIsActive /* f011f0c: 24040027 */ addiu $a0,$zero,0x27 /* f011f10: 10400006 */ beqz $v0,.L0f011f2c /* f011f14: 00000000 */ sll $zero,$zero,0x0 -/* f011f18: 0fc44762 */ jal func0f111d88 +/* f011f18: 0fc44762 */ jal currentPlayerGiveWeapon /* f011f1c: 24040029 */ addiu $a0,$zero,0x29 /* f011f20: 24040002 */ addiu $a0,$zero,0x2 -/* f011f24: 0fc2a58a */ jal func0f0a9628 +/* f011f24: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011f28: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011f2c: /* f011f2c: 0fc41b99 */ jal cheatIsActive /* f011f30: 24040028 */ addiu $a0,$zero,0x28 /* f011f34: 10400006 */ beqz $v0,.L0f011f50 /* f011f38: 00000000 */ sll $zero,$zero,0x0 -/* f011f3c: 0fc44762 */ jal func0f111d88 +/* f011f3c: 0fc44762 */ jal currentPlayerGiveWeapon /* f011f40: 2404002a */ addiu $a0,$zero,0x2a /* f011f44: 24040004 */ addiu $a0,$zero,0x4 -/* f011f48: 0fc2a58a */ jal func0f0a9628 +/* f011f48: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011f4c: 240500c8 */ addiu $a1,$zero,0xc8 .L0f011f50: /* f011f50: 0fc41b99 */ jal cheatIsActive /* f011f54: 24040029 */ addiu $a0,$zero,0x29 /* f011f58: 50400007 */ beqzl $v0,.L0f011f78 /* f011f5c: 8fa90080 */ lw $t1,0x80($sp) -/* f011f60: 0fc44762 */ jal func0f111d88 +/* f011f60: 0fc44762 */ jal currentPlayerGiveWeapon /* f011f64: 2404002b */ addiu $a0,$zero,0x2b /* f011f68: 24040002 */ addiu $a0,$zero,0x2 -/* f011f6c: 0fc2a58a */ jal func0f0a9628 +/* f011f6c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f011f70: 240500c8 */ addiu $a1,$zero,0xc8 /* f011f74: 8fa90080 */ lw $t1,0x80($sp) .L0f011f78: @@ -1069,7 +1072,7 @@ glabel func0f0118f4 /* f011f80: 3c01800a */ lui $at,0x800a /* f011f84: ac2addd0 */ sw $t2,-0x2230($at) .L0f011f88: -/* f011f88: 0fc180d6 */ jal func0f060358 +/* f011f88: 0fc180d6 */ jal propAllocate /* f011f8c: 00000000 */ sll $zero,$zero,0x0 /* f011f90: 8e2b0284 */ lw $t3,0x284($s1) /* f011f94: 24190006 */ addiu $t9,$zero,0x6 @@ -1147,7 +1150,7 @@ glabel func0f0118f4 /* f0120a0: 93a9007b */ lbu $t1,0x7b($sp) /* f0120a4: 11200003 */ beqz $t1,.L0f0120b4 /* f0120a8: 00000000 */ sll $zero,$zero,0x0 -/* f0120ac: 0fc0458c */ jal func0f011630 +/* f0120ac: 0fc0458c */ jal currentPlayerInitEyespy /* f0120b0: 00000000 */ sll $zero,$zero,0x0 .L0f0120b4: /* f0120b4: 3c0d800a */ lui $t5,0x800a @@ -1398,24 +1401,341 @@ glabel func0f0118f4 /* f01244c: 00000000 */ sll $zero,$zero,0x0 ); -void currentPlayerInitGunsHeld(void) -{ - s32 i; - - if (PLAYERCOUNT() == 1 && g_Vars.mplayerisrunning == false) { - g_Vars.currentplayer->equipallguns = cheatIsActive(CHEAT_ALLGUNS); - } else { - g_Vars.currentplayer->equipallguns = false; - } - - for (i = 0; i != 10; i++) { - g_Vars.currentplayer->gunheldarr[i].unk08 = -1; - } -} - -void func0f012530(s32 arg0) -{ - g_Vars.currentplayer->equipmaxitems = arg0 + 30; - g_Vars.currentplayer->unk1868 = func000123c8((g_Vars.currentplayer->equipmaxitems * 20 + 15 | 0xf) ^ 0xf, 4); - func0f111600(); -} +// regalloc +//void currentPlayerInit(void) +//{ +// struct coord pos = var800623a4; +// s16 rooms[8]; +// f32 fStack32 = 0; +// f32 fVar9; +// bool hasdefaultweapon = false; +// s32 *cmd = g_StageSetup.intro; +// u8 haseyespy = false; +// s32 stack[7]; +// s32 i; +// s32 numchrs; +// struct gecreditsdata *thing; +// f32 tmp; +// s32 bodynum; +// s32 headnum; +// +// func0f0bc3f0(); +// func0f18e558(); +// var80070764 = 0; +// var8009de20 = 0; +// var8007072c = 1; +// var80070738 = 0; +// var8007073c = 0; +// g_CurrentGeCreditsData = NULL; +// g_Vars.currentplayer->bondexploding = false; +// g_NumSpawnPoints = 0; +// g_Vars.currentplayer->unk1b78 = 0; +// g_Vars.currentplayer->unk1bd4 = 0; +// g_PlayersWithControl[0] = true; +// g_PlayersWithControl[1] = true; +// g_PlayersWithControl[2] = true; +// g_PlayersWithControl[3] = true; +// g_PlayerInvincible = false; +// setTickMode(TICKMODE_0); +// var80070744 = 0; +// var80070748 = 0; +// var8007074c = 0; +// g_Vars.currentplayer->bondviewlevtime60 = 0; +// g_Vars.currentplayer->bondwatchtime60 = 0; +// g_Vars.currentplayer->introanimnum = 0; +// g_DefaultWeaponArgument = 0; +// g_DefaultWeapon = 0; +// +// if (cmd) { +// while (cmd[0] != INTROTYPE_END) { +// switch (*cmd) { +// case INTROTYPE_SPAWN: +// if (cmd[2] == 0) { +// g_SpawnPoints[g_NumSpawnPoints++] = cmd[1]; +// } +// cmd += 3; +// break; +// case INTROTYPE_CASE: +// case INTROTYPE_CASERESPAWN: +// cmd += 3; +// break; +// case INTROTYPE_HILL: +// cmd += 2; +// break; +// case INTROTYPE_WEAPON: +// if (cmd[3] == 0 && g_Vars.currentplayer != g_Vars.anti) { +// func0f011560(cmd[1]); +// +// if (cmd[2] >= 0) { +// func0f011560(cmd[2]); +// func0f111e28(cmd[1], cmd[2]); +// } else { +// currentPlayerGiveWeapon(cmd[1]); +// } +// +// if (!hasdefaultweapon) { +// g_DefaultWeapon = cmd[1]; +// +// if (cmd[2] >= 0) { +// g_DefaultWeaponArgument = cmd[2]; +// } +// +// hasdefaultweapon = true; +// } +// +// if (cmd[1] == WEAPON_CAMSPY) { +// haseyespy = true; +// } +// } +// cmd += 4; +// break; +// case INTROTYPE_AMMO: +// if (cmd[3] == 0 && g_Vars.currentplayer != g_Vars.anti) { +// currentPlayerGiveAmmo(cmd[1], cmd[2]); +// } +// cmd += 4; +// break; +// case INTROTYPE_3: +// cmd += 8; +// break; +// case INTROTYPE_4: +// cmd += 2; +// break; +// case INTROTYPE_OUTFIT: +// g_Vars.currentplayer->bondtype = cmd[1]; +// cmd += 2; +// break; +// case INTROTYPE_6: +// cmd += 10; +// break; +// case INTROTYPE_WATCHTIME: +// g_Vars.currentplayer->bondwatchtime60 = 0; +// if (cmd[2] > 0) { +// g_Vars.currentplayer->bondwatchtime60 += (cmd[2] % 60) * 3600; +// } +// if (cmd[1] > 0) { +// g_Vars.currentplayer->bondwatchtime60 += (cmd[1] % 12) * 3600 * 60; +// } +// cmd += 3; +// break; +// case INTROTYPE_CREDITOFFSET: +// thing = (struct gecreditsdata *)&g_GeCreditsData[cmd[1]]; +// g_CurrentGeCreditsData = thing; +// while (thing->text1 || thing->text2) { +// thing++; +// } +// cmd += 2; +// break; +// default: +// cmd++; +// } +// } +// } +// +// currentPlayerGiveWeapon(WEAPON_UNARMED); +// +// if (cheatIsActive(CHEAT_TRENTSMAGNUM)) { +// currentPlayerGiveWeapon(WEAPON_DY357LX); +// currentPlayerGiveAmmo(AMMOTYPE_MAGNUM, 80); +// } +// +// if (cheatIsActive(CHEAT_FARSIGHT)) { +// currentPlayerGiveWeapon(WEAPON_FARSIGHTXR20); +// currentPlayerGiveAmmo(AMMOTYPE_FARSIGHT, 80); +// } +// +// if (cheatIsActive(CHEAT_CLOAKINGDEVICE)) { +// currentPlayerGiveWeapon(WEAPON_CLOAKINGDEVICE); +// currentPlayerGiveAmmo(AMMOTYPE_CLOAK, 7200); +// } +// +// if (cheatIsActive(CHEAT_PERFECTDARKNESS)) { +// currentPlayerGiveWeapon(WEAPON_NIGHTVISION); +// } +// +// if (cheatIsActive(CHEAT_RTRACKER)) { +// currentPlayerGiveWeapon(WEAPON_RTRACKER); +// } +// +// if (cheatIsActive(CHEAT_ROCKETLAUNCHER)) { +// currentPlayerGiveWeapon(WEAPON_ROCKETLAUNCHER); +// currentPlayerGiveAmmo(AMMOTYPE_ROCKET, 10); +// } +// +// if (cheatIsActive(CHEAT_SNIPERRIFLE)) { +// currentPlayerGiveWeapon(WEAPON_SNIPERRIFLE); +// currentPlayerGiveAmmo(AMMOTYPE_RIFLE, 200); +// } +// +// if (cheatIsActive(CHEAT_XRAYSCANNER)) { +// currentPlayerGiveWeapon(WEAPON_XRAYSCANNER); +// } +// +// if (cheatIsActive(CHEAT_SUPERDRAGON)) { +// currentPlayerGiveWeapon(WEAPON_SUPERDRAGON); +// currentPlayerGiveAmmo(AMMOTYPE_RIFLE, 200); +// currentPlayerGiveAmmo(AMMOTYPE_DEVASTATOR, 20); +// } +// +// if (cheatIsActive(CHEAT_LAPTOPGUN)) { +// currentPlayerGiveWeapon(WEAPON_LAPTOPGUN); +// currentPlayerGiveAmmo(AMMOTYPE_SMG, 200); +// } +// +// if (cheatIsActive(CHEAT_PHOENIX)) { +// currentPlayerGiveWeapon(WEAPON_PHOENIX); +// currentPlayerGiveAmmo(AMMOTYPE_PISTOL, 200); +// } +// +// if (cheatIsActive(CHEAT_PSYCHOSISGUN) || cheatIsActive(CHEAT_ALLGUNS)) { +// currentPlayerGiveAmmo(AMMOTYPE_PSYCHOSIS, 4); +// +// if (cheatIsActive(CHEAT_PSYCHOSISGUN)) { +// currentPlayerGiveWeapon(WEAPON_PSYCHOSISGUN); +// } +// } +// +// if (cheatIsActive(CHEAT_PP9I)) { +// currentPlayerGiveWeapon(WEAPON_PP9I); +// currentPlayerGiveAmmo(AMMOTYPE_PISTOL, 200); +// } +// +// if (cheatIsActive(CHEAT_CC13)) { +// currentPlayerGiveWeapon(WEAPON_CC13); +// currentPlayerGiveAmmo(AMMOTYPE_RIFLE, 200); +// } +// +// if (cheatIsActive(CHEAT_KL01313)) { +// currentPlayerGiveWeapon(WEAPON_KL01313); +// currentPlayerGiveAmmo(AMMOTYPE_SMG, 200); +// } +// +// if (cheatIsActive(CHEAT_KF7SPECIAL)) { +// currentPlayerGiveWeapon(WEAPON_KF7SPECIAL); +// currentPlayerGiveAmmo(AMMOTYPE_RIFLE, 200); +// } +// +// if (cheatIsActive(CHEAT_ZZT)) { +// currentPlayerGiveWeapon(WEAPON_ZZT); +// currentPlayerGiveAmmo(AMMOTYPE_SMG, 200); +// } +// +// if (cheatIsActive(CHEAT_DMC)) { +// currentPlayerGiveWeapon(WEAPON_DMC); +// currentPlayerGiveAmmo(AMMOTYPE_SMG, 200); +// } +// +// if (cheatIsActive(CHEAT_AR53)) { +// currentPlayerGiveWeapon(WEAPON_AR53); +// currentPlayerGiveAmmo(AMMOTYPE_RIFLE, 200); +// } +// +// if (cheatIsActive(CHEAT_RCP45)) { +// currentPlayerGiveWeapon(WEAPON_RCP45); +// currentPlayerGiveAmmo(AMMOTYPE_SMG, 200); +// } +// +// if (!hasdefaultweapon) { +// g_DefaultWeapon = WEAPON_UNARMED; +// } +// +// g_Vars.currentplayer->prop = propAllocate(); +// g_Vars.currentplayer->prop->chr = NULL; +// g_Vars.currentplayer->prop->type = PROPTYPE_PLAYER; +// func0f0604bc(g_Vars.currentplayer->prop); +// propHide(g_Vars.currentplayer->prop); +// func0f020668(g_Vars.currentplayer->prop, 0); +// +// if (g_Vars.coopplayernum >= 0) { +// g_Vars.currentplayer->prop->chr->team = TEAM_ALLY; +// } else if (g_Vars.antiplayernum >= 0) { +// if (g_Vars.currentplayer == g_Vars.bond) { +// g_Vars.currentplayer->prop->chr->team = TEAM_ALLY; +// } else { +// g_Vars.currentplayer->prop->chr->team = TEAM_ENEMY; +// } +// } else { +// if (g_Vars.unk000314) { +// g_Vars.currentplayer->prop->chr->team = 1 << g_MpPlayers[g_Vars.unk000288->mpchrnum].base.team; +// } else { +// g_Vars.currentplayer->prop->chr->team = TEAM_ALLY; +// } +// } +// +// if (haseyespy) { +// currentPlayerInitEyespy(); +// } +// +// if (g_NumSpawnPoints > 0) { +// if (g_Vars.coopplayernum >= 0) { +// fStack32 = M_PI * 2 - scenarioCallback2c(30, &pos, &rooms[0], g_Vars.currentplayer->prop); +// } else if (g_Vars.antiplayernum >= 0) { +// fStack32 = M_PI * 2 - scenarioCallback2c(30, &pos, &rooms[0], g_Vars.currentplayer->prop); +// } else { +// if (g_Vars.unk000314 == 0) { +// g_NumSpawnPoints = 1; +// } +// +// fStack32 = M_PI * 2 - scenarioCallback2c(30, &pos, &rooms[0], g_Vars.currentplayer->prop); +// } +// } +// +// fVar9 = func0002a1b0(&pos, 30, &rooms[0], +// &g_Vars.currentplayer->unk161a, +// &g_Vars.currentplayer->unk161e, +// &g_Vars.currentplayer->unk161c, +// &g_Vars.currentplayer->unk19b0, +// 0, 0); +// +// pos.y = g_Vars.currentplayer->unk19c4 + fVar9; +// g_Vars.currentplayer->unk0074 = fVar9; +// g_Vars.currentplayer->unk0078 = fVar9; +// g_Vars.currentplayer->unk0144 = (fStack32 * 360.0f) / (M_PI * 2); +// func0f0b85a0(&g_Vars.currentplayer->unk036c, &pos); +// g_Vars.currentplayer->unk036c = -func0001a3dc(fStack32); +// g_Vars.currentplayer->unk0370 = 0; +// g_Vars.currentplayer->unk0374 = func0001a3d0(fStack32); +// g_Vars.currentplayer->bondprevpos.x = (tmp = pos.x); +// g_Vars.currentplayer->prop->pos.x = tmp; +// g_Vars.currentplayer->bondprevpos.y = (tmp = pos.y); +// g_Vars.currentplayer->prop->pos.y = tmp; +// g_Vars.currentplayer->bondprevpos.z = (tmp = pos.z); +// g_Vars.currentplayer->prop->pos.z = tmp; +// func0f065c44(g_Vars.currentplayer->prop); +// g_Vars.currentplayer->prop->rooms[0] = rooms[0]; +// g_Vars.currentplayer->prop->rooms[1] = -1; +// currentPlayerSetCamPropertiesWithRoom(&pos, &g_Vars.currentplayer->headup, &g_Vars.currentplayer->headlook, rooms[0]); +// +// numchrs = getNumChrs(); +// +// for (i = 0; i < numchrs; i++) { +// if (g_ChrsA[i].target == -2) { +// g_ChrsA[i].target = g_Vars.currentplayer->prop - g_Vars.props; +// } +// } +// +// func0f0cb8c4(g_Vars.currentplayer); +// +// if (g_Vars.mplayerisrunning) { +// func0f0b9674(); +// } else { +// func0f0b9a20(); +// } +// +// var8007077c = 0; +// +// while (var80070768[var8007077c] > 0) { +// var8007077c++; +// } +// +// g_Vars.currentplayer->tickdiefinished = false; +// g_Vars.currentplayer->unk00e0 = 0; +// +// for (i = 0; i != 4; i++) { +// g_Vars.unk0004b8[i] = 0; +// } +// +// func0f0b872c(&bodynum, &headnum, 0); +// g_Vars.currentplayer->prop->chr->bodynum = bodynum; +// g_Vars.currentplayer->prop->chr->headnum = headnum; +//} diff --git a/src/game/game_012450.c b/src/game/game_012450.c new file mode 100644 index 000000000..30b26276e --- /dev/null +++ b/src/game/game_012450.c @@ -0,0 +1,33 @@ +#include +#include "constants.h" +#include "game/cheats.h" +#include "game/chr/chr.h" +#include "game/game_012450.h" +#include "game/game_111600.h" +#include "gvars/gvars.h" +#include "setup/setup_000000.h" +#include "setup/setup_0160b0.h" +#include "setup/setup_020df0.h" +#include "types.h" + +void currentPlayerInitGunsHeld(void) +{ + s32 i; + + if (PLAYERCOUNT() == 1 && g_Vars.mplayerisrunning == false) { + g_Vars.currentplayer->equipallguns = cheatIsActive(CHEAT_ALLGUNS); + } else { + g_Vars.currentplayer->equipallguns = false; + } + + for (i = 0; i != 10; i++) { + g_Vars.currentplayer->gunheldarr[i].unk08 = -1; + } +} + +void func0f012530(s32 arg0) +{ + g_Vars.currentplayer->equipmaxitems = arg0 + 30; + g_Vars.currentplayer->unk1868 = func000123c8((g_Vars.currentplayer->equipmaxitems * 20 + 15 | 0xf) ^ 0xf, 4); + func0f111600(); +} diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index af9598c8e..d5f616433 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -318,7 +318,7 @@ glabel func0f060300 ); GLOBAL_ASM( -glabel func0f060358 +glabel propAllocate /* f060358: 3c04800a */ lui $a0,%hi(g_Vars) /* f06035c: 24849fc0 */ addiu $a0,$a0,%lo(g_Vars) /* f060360: 8c820344 */ lw $v0,0x344($a0) diff --git a/src/game/game_066310.c b/src/game/game_066310.c index b2eba8adc..f087f64c8 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -5936,7 +5936,7 @@ glabel func0f06a1ec /* f06a1f8: afbf001c */ sw $ra,0x1c($sp) /* f06a1fc: 14c00005 */ bnez $a2,.L0f06a214 /* f06a200: afa50024 */ sw $a1,0x24($sp) -/* f06a204: 0fc180d6 */ jal func0f060358 +/* f06a204: 0fc180d6 */ jal propAllocate /* f06a208: afa7002c */ sw $a3,0x2c($sp) /* f06a20c: 8fa7002c */ lw $a3,0x2c($sp) /* f06a210: 00403025 */ or $a2,$v0,$zero @@ -38235,7 +38235,7 @@ glabel func0f086f40 /* f087298: 8d980040 */ lw $t8,0x40($t4) /* f08729c: 2404000e */ addiu $a0,$zero,0xe /* f0872a0: 37190004 */ ori $t9,$t8,0x4 -/* f0872a4: 0fc44762 */ jal func0f111d88 +/* f0872a4: 0fc44762 */ jal currentPlayerGiveWeapon /* f0872a8: ad990040 */ sw $t9,0x40($t4) /* f0872ac: 2404000e */ addiu $a0,$zero,0xe /* f0872b0: 0fc221f2 */ jal func0f0887c8 @@ -39243,7 +39243,7 @@ glabel func0f088028 /* f088070: 02002025 */ or $a0,$s0,$zero /* f088074: 8fb8002c */ lw $t8,0x2c($sp) /* f088078: 02002025 */ or $a0,$s0,$zero -/* f08807c: 0fc2a58a */ jal func0f0a9628 +/* f08807c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f088080: 00582821 */ addu $a1,$v0,$t8 /* f088084: 8fb90034 */ lw $t9,0x34($sp) /* f088088: 02002025 */ or $a0,$s0,$zero @@ -39320,7 +39320,7 @@ glabel func0f088028 .L0f088178: /* f088178: 04820004 */ bltzl $a0,.L0f08818c /* f08817c: 8fbf001c */ lw $ra,0x1c($sp) -/* f088180: 0fc44762 */ jal func0f111d88 +/* f088180: 0fc44762 */ jal currentPlayerGiveWeapon /* f088184: 00000000 */ sll $zero,$zero,0x0 .L0f088188: /* f088188: 8fbf001c */ lw $ra,0x1c($sp) @@ -40139,7 +40139,7 @@ glabel func0f088840 /* f088cec: 00c2082a */ slt $at,$a2,$v0 /* f088cf0: 1020000b */ beqz $at,.L0f088d20 /* f088cf4: 00a92821 */ addu $a1,$a1,$t1 -/* f088cf8: 0fc2a58a */ jal func0f0a9628 +/* f088cf8: 0fc2a58a */ jal currentPlayerGiveAmmo /* f088cfc: 8fa4006c */ lw $a0,0x6c($sp) /* f088d00: 8faa0070 */ lw $t2,0x70($sp) /* f088d04: 8fab00a4 */ lw $t3,0xa4($sp) @@ -40171,7 +40171,7 @@ glabel func0f088840 /* f088d64: 0fc2a5dc */ jal func0f0a9770 /* f088d68: 2404000b */ addiu $a0,$zero,0xb /* f088d6c: 2404000b */ addiu $a0,$zero,0xb -/* f088d70: 0fc2a58a */ jal func0f0a9628 +/* f088d70: 0fc2a58a */ jal currentPlayerGiveAmmo /* f088d74: 24450005 */ addiu $a1,$v0,0x5 /* f088d78: 8fae0070 */ lw $t6,0x70($sp) /* f088d7c: 8faf00a4 */ lw $t7,0xa4($sp) @@ -40193,7 +40193,7 @@ glabel func0f088840 /* f088db4: 8d2a0480 */ lw $t2,0x480($t1) /* f088db8: 15400003 */ bnez $t2,.L0f088dc8 /* f088dbc: 00000000 */ sll $zero,$zero,0x0 -/* f088dc0: 0fc0458c */ jal func0f011630 +/* f088dc0: 0fc0458c */ jal currentPlayerInitEyespy /* f088dc4: 00000000 */ sll $zero,$zero,0x0 .L0f088dc8: /* f088dc8: 10000076 */ beqz $zero,.L0f088fa4 @@ -41375,7 +41375,7 @@ glabel chrTryEquipHat /* f089e08: 000e78c0 */ sll $t7,$t6,0x3 /* f089e0c: 030fc021 */ addu $t8,$t8,$t7 /* f089e10: 8f18b06c */ lw $t8,-0x4f94($t8) -/* f089e14: 0fc180d6 */ jal func0f060358 +/* f089e14: 0fc180d6 */ jal propAllocate /* f089e18: afb8009c */ sw $t8,0x9c($sp) /* f089e1c: 00408025 */ or $s0,$v0,$zero /* f089e20: 0fc2cc2b */ jal func0f0b30ac @@ -41387,7 +41387,7 @@ glabel chrTryEquipHat /* f089e38: 8fa6009c */ lw $a2,0x9c($sp) /* f089e3c: 16000004 */ bnez $s0,.L0f089e50 /* f089e40: 00409025 */ or $s2,$v0,$zero -/* f089e44: 0fc180d6 */ jal func0f060358 +/* f089e44: 0fc180d6 */ jal propAllocate /* f089e48: 00000000 */ sll $zero,$zero,0x0 /* f089e4c: 00408025 */ or $s0,$v0,$zero .L0f089e50: @@ -42944,7 +42944,7 @@ glabel func0f08b27c /* f08b34c: 0fc1acd3 */ jal setupParseObjectWithArg2False /* f08b350: 24050001 */ addiu $a1,$zero,0x1 .L0f08b354: -/* f08b354: 0fc180d6 */ jal func0f060358 +/* f08b354: 0fc180d6 */ jal propAllocate /* f08b358: 00000000 */ sll $zero,$zero,0x0 /* f08b35c: afa200a0 */ sw $v0,0xa0($sp) /* f08b360: 0fc2cc2b */ jal func0f0b30ac @@ -42953,7 +42953,7 @@ glabel func0f08b27c /* f08b36c: 00403825 */ or $a3,$v0,$zero /* f08b370: 15a00005 */ bnez $t5,.L0f08b388 /* f08b374: 00000000 */ sll $zero,$zero,0x0 -/* f08b378: 0fc180d6 */ jal func0f060358 +/* f08b378: 0fc180d6 */ jal propAllocate /* f08b37c: afa2009c */ sw $v0,0x9c($sp) /* f08b380: 8fa7009c */ lw $a3,0x9c($sp) /* f08b384: afa200a0 */ sw $v0,0xa0($sp) @@ -43168,7 +43168,7 @@ glabel func0f08b658 /* f08b680: 000e78c0 */ sll $t7,$t6,0x3 /* f08b684: 030fc021 */ addu $t8,$t8,$t7 /* f08b688: 8f18b06c */ lw $t8,-0x4f94($t8) -/* f08b68c: 0fc180d6 */ jal func0f060358 +/* f08b68c: 0fc180d6 */ jal propAllocate /* f08b690: afb8009c */ sw $t8,0x9c($sp) /* f08b694: 00408825 */ or $s1,$v0,$zero /* f08b698: 0fc2cc2b */ jal func0f0b30ac @@ -43181,7 +43181,7 @@ glabel func0f08b658 /* f08b6b4: 8fa70094 */ lw $a3,0x94($sp) /* f08b6b8: 16200005 */ bnez $s1,.L0f08b6d0 /* f08b6bc: 00408025 */ or $s0,$v0,$zero -/* f08b6c0: 0fc180d6 */ jal func0f060358 +/* f08b6c0: 0fc180d6 */ jal propAllocate /* f08b6c4: afa70094 */ sw $a3,0x94($sp) /* f08b6c8: 8fa70094 */ lw $a3,0x94($sp) /* f08b6cc: 00408825 */ or $s1,$v0,$zero @@ -43363,7 +43363,7 @@ glabel func0f08b8e8 /* f08b92c: 8f39b06c */ lw $t9,-0x4f94($t9) /* f08b930: afb900b4 */ sw $t9,0xb4($sp) .L0f08b934: -/* f08b934: 0fc180d6 */ jal func0f060358 +/* f08b934: 0fc180d6 */ jal propAllocate /* f08b938: 00000000 */ sll $zero,$zero,0x0 /* f08b93c: 00409025 */ or $s2,$v0,$zero /* f08b940: 0fc2cc2b */ jal func0f0b30ac @@ -43379,7 +43379,7 @@ glabel func0f08b8e8 .L0f08b968: /* f08b968: 16400004 */ bnez $s2,.L0f08b97c /* f08b96c: 00000000 */ sll $zero,$zero,0x0 -/* f08b970: 0fc180d6 */ jal func0f060358 +/* f08b970: 0fc180d6 */ jal propAllocate /* f08b974: 00000000 */ sll $zero,$zero,0x0 /* f08b978: 00409025 */ or $s2,$v0,$zero .L0f08b97c: diff --git a/src/game/game_097a50.c b/src/game/game_097a50.c index 04b011689..e5bac6448 100644 --- a/src/game/game_097a50.c +++ b/src/game/game_097a50.c @@ -20229,7 +20229,7 @@ glabel func0f0a8d34 /* f0a8d9c: 00000000 */ sll $zero,$zero,0x0 /* f0a8da0: 0fc44580 */ jal func0f111600 /* f0a8da4: 00000000 */ sll $zero,$zero,0x0 -/* f0a8da8: 0fc44762 */ jal func0f111d88 +/* f0a8da8: 0fc44762 */ jal currentPlayerGiveWeapon /* f0a8dac: 24040001 */ addiu $a0,$zero,0x1 .L0f0a8db0: /* f0a8db0: 3c02800a */ lui $v0,0x800a @@ -20848,7 +20848,7 @@ glabel func0f0a95ec ); GLOBAL_ASM( -glabel func0f0a9628 +glabel currentPlayerGiveAmmo /* f0a9628: 27bdffc8 */ addiu $sp,$sp,-56 /* f0a962c: afb20020 */ sw $s2,0x20($sp) /* f0a9630: afb1001c */ sw $s1,0x1c($sp) @@ -21127,7 +21127,7 @@ glabel func0f0a9980 /* f0a99d4: 02002025 */ or $a0,$s0,$zero /* f0a99d8: 00007012 */ mflo $t6 /* f0a99dc: 024e7821 */ addu $t7,$s2,$t6 -/* f0a99e0: 0fc2a58a */ jal func0f0a9628 +/* f0a99e0: 0fc2a58a */ jal currentPlayerGiveAmmo /* f0a99e4: 8de50000 */ lw $a1,0x0($t7) /* f0a99e8: 26100001 */ addiu $s0,$s0,0x1 .L0f0a99ec: @@ -21216,7 +21216,7 @@ glabel func0f0a9ac4 /* f0a9aec: 8fa50020 */ lw $a1,0x20($sp) /* f0a9af0: 50600004 */ beqzl $v1,.L0f0a9b04 /* f0a9af4: 8fbf0014 */ lw $ra,0x14($sp) -/* f0a9af8: 0fc2a58a */ jal func0f0a9628 +/* f0a9af8: 0fc2a58a */ jal currentPlayerGiveAmmo /* f0a9afc: 8c640000 */ lw $a0,0x0($v1) .L0f0a9b00: /* f0a9b00: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/game_0b28d0.c b/src/game/game_0b28d0.c index 08fc1db7f..b4cf5d071 100644 --- a/src/game/game_0b28d0.c +++ b/src/game/game_0b28d0.c @@ -5598,9 +5598,9 @@ glabel func0f0b72a8 /* f0b72a8: 3c0f800a */ lui $t7,0x800a /* f0b72ac: 8defde68 */ lw $t7,-0x2198($t7) /* f0b72b0: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0b72b4: 3c0e800a */ lui $t6,%hi(var8009de38) +/* f0b72b4: 3c0e800a */ lui $t6,%hi(g_SpawnPoints) /* f0b72b8: afbf001c */ sw $ra,0x1c($sp) -/* f0b72bc: 25cede38 */ addiu $t6,$t6,%lo(var8009de38) +/* f0b72bc: 25cede38 */ addiu $t6,$t6,%lo(g_SpawnPoints) /* f0b72c0: afae0010 */ sw $t6,0x10($sp) /* f0b72c4: 0fc2da74 */ jal func0f0b69d0 /* f0b72c8: afaf0014 */ sw $t7,0x14($sp) @@ -5822,7 +5822,7 @@ glabel func0f0b72dc /* f0b75f0: 1462fffc */ bne $v1,$v0,.L0f0b75e4 /* f0b75f4: af0017a8 */ sw $zero,0x17a8($t8) .L0f0b75f8: -/* f0b75f8: 0fc44762 */ jal func0f111d88 +/* f0b75f8: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b75fc: 24040001 */ addiu $a0,$zero,0x1 /* f0b7600: 5220003c */ beqzl $s1,.L0f0b76f4 /* f0b7604: 8e4c0298 */ lw $t4,0x298($s2) @@ -5863,7 +5863,7 @@ glabel func0f0b72dc /* f0b7688: 10000016 */ beqz $zero,.L0f0b76e4 /* f0b768c: 26310010 */ addiu $s1,$s1,0x10 .L0f0b7690: -/* f0b7690: 0fc44762 */ jal func0f111d88 +/* f0b7690: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7694: 8e240004 */ lw $a0,0x4($s1) .L0f0b7698: /* f0b7698: 10000012 */ beqz $zero,.L0f0b76e4 @@ -5872,7 +5872,7 @@ glabel func0f0b72dc /* f0b76a4: 15a00004 */ bnez $t5,.L0f0b76b8 /* f0b76a8: 00000000 */ sll $zero,$zero,0x0 /* f0b76ac: 8e240004 */ lw $a0,0x4($s1) -/* f0b76b0: 0fc2a58a */ jal func0f0a9628 +/* f0b76b0: 0fc2a58a */ jal currentPlayerGiveAmmo /* f0b76b4: 8e250008 */ lw $a1,0x8($s1) .L0f0b76b8: /* f0b76b8: 1000000a */ beqz $zero,.L0f0b76e4 @@ -6302,7 +6302,7 @@ glabel func0f0b7c60 /* f0b7cfc: 00000000 */ sll $zero,$zero,0x0 /* f0b7d00: 8c430004 */ lw $v1,0x4($v0) /* f0b7d04: 9064005c */ lbu $a0,0x5c($v1) -/* f0b7d08: 0fc44762 */ jal func0f111d88 +/* f0b7d08: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7d0c: afa30034 */ sw $v1,0x34($sp) /* f0b7d10: 8fad0034 */ lw $t5,0x34($sp) /* f0b7d14: 91a4005c */ lbu $a0,0x5c($t5) @@ -6326,7 +6326,7 @@ glabel func0f0b7c60 /* f0b7d58: 9064005c */ lbu $a0,0x5c($v1) /* f0b7d5c: 14810008 */ bne $a0,$at,.L0f0b7d80 /* f0b7d60: 00000000 */ sll $zero,$zero,0x0 -/* f0b7d64: 0fc44762 */ jal func0f111d88 +/* f0b7d64: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7d68: 2404000f */ addiu $a0,$zero,0xf /* f0b7d6c: 00002025 */ or $a0,$zero,$zero /* f0b7d70: 0fc28824 */ jal currentPlayerEquipWeapon @@ -6334,7 +6334,7 @@ glabel func0f0b7c60 /* f0b7d78: 10000025 */ beqz $zero,.L0f0b7e10 /* f0b7d7c: 00000000 */ sll $zero,$zero,0x0 .L0f0b7d80: -/* f0b7d80: 0fc44762 */ jal func0f111d88 +/* f0b7d80: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7d84: afa3002c */ sw $v1,0x2c($sp) /* f0b7d88: 8fa3002c */ lw $v1,0x2c($sp) /* f0b7d8c: 00002025 */ or $a0,$zero,$zero @@ -6351,7 +6351,7 @@ glabel func0f0b7c60 /* f0b7db4: 9064005c */ lbu $a0,0x5c($v1) /* f0b7db8: 14810008 */ bne $a0,$at,.L0f0b7ddc /* f0b7dbc: 00000000 */ sll $zero,$zero,0x0 -/* f0b7dc0: 0fc44762 */ jal func0f111d88 +/* f0b7dc0: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7dc4: 2404000f */ addiu $a0,$zero,0xf /* f0b7dc8: 00002025 */ or $a0,$zero,$zero /* f0b7dcc: 0fc28824 */ jal currentPlayerEquipWeapon @@ -6359,7 +6359,7 @@ glabel func0f0b7c60 /* f0b7dd4: 1000000e */ beqz $zero,.L0f0b7e10 /* f0b7dd8: 00000000 */ sll $zero,$zero,0x0 .L0f0b7ddc: -/* f0b7ddc: 0fc44762 */ jal func0f111d88 +/* f0b7ddc: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7de0: afa30028 */ sw $v1,0x28($sp) /* f0b7de4: 8fa30028 */ lw $v1,0x28($sp) /* f0b7de8: 00002025 */ or $a0,$zero,$zero @@ -6368,7 +6368,7 @@ glabel func0f0b7c60 /* f0b7df4: 10000006 */ beqz $zero,.L0f0b7e10 /* f0b7df8: 00000000 */ sll $zero,$zero,0x0 .L0f0b7dfc: -/* f0b7dfc: 0fc44762 */ jal func0f111d88 +/* f0b7dfc: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b7e00: 24040001 */ addiu $a0,$zero,0x1 /* f0b7e04: 00002025 */ or $a0,$zero,$zero /* f0b7e08: 0fc28824 */ jal currentPlayerEquipWeapon @@ -6550,7 +6550,7 @@ glabel func0f0b802c /* f0b8094: 02202025 */ or $a0,$s1,$zero /* f0b8098: ad22195c */ sw $v0,0x195c($t1) /* f0b809c: 8eea0284 */ lw $t2,0x284($s7) -/* f0b80a0: 0fc44762 */ jal func0f111d88 +/* f0b80a0: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b80a4: ad401964 */ sw $zero,0x1964($t2) /* f0b80a8: 44806000 */ mtc1 $zero,$f12 /* f0b80ac: 0fc30884 */ jal func0f0c2210 @@ -6579,8 +6579,8 @@ glabel func0f0b802c /* f0b8100: 11800117 */ beqz $t4,.L0f0b8560 /* f0b8104: 00000000 */ sll $zero,$zero,0x0 /* f0b8108: 8eed029c */ lw $t5,0x29c($s7) -/* f0b810c: 3c10800a */ lui $s0,%hi(var8009ddd0) -/* f0b8110: 2610ddd0 */ addiu $s0,$s0,%lo(var8009ddd0) +/* f0b810c: 3c10800a */ lui $s0,%hi(g_DefaultWeapon) +/* f0b8110: 2610ddd0 */ addiu $s0,$s0,%lo(g_DefaultWeapon) /* f0b8114: 05a000f9 */ bltz $t5,.L0f0b84fc /* f0b8118: 02202025 */ or $a0,$s1,$zero /* f0b811c: 8eee02a8 */ lw $t6,0x2a8($s7) @@ -6589,7 +6589,7 @@ glabel func0f0b802c /* f0b8128: 15cf00f4 */ bne $t6,$t7,.L0f0b84fc /* f0b812c: 00000000 */ sll $zero,$zero,0x0 /* f0b8130: 0000f025 */ or $s8,$zero,$zero -/* f0b8134: 0fc44762 */ jal func0f111d88 +/* f0b8134: 0fc44762 */ jal currentPlayerGiveWeapon /* f0b8138: 2404005d */ addiu $a0,$zero,0x5d /* f0b813c: 24040001 */ addiu $a0,$zero,0x1 /* f0b8140: 0fc28824 */ jal currentPlayerEquipWeapon @@ -8323,8 +8323,8 @@ void func0f0b9a20(void) } func0f165eec(getCurrentStageId(), 0); - currentPlayerEquipWeapon(1, var8009ddd4); - currentPlayerEquipWeapon(0, var8009ddd0); + currentPlayerEquipWeapon(1, g_DefaultWeaponArgument); + currentPlayerEquipWeapon(0, g_DefaultWeapon); var8007074c = 0; } diff --git a/src/game/game_111600.c b/src/game/game_111600.c index 1229a0aa6..fc5776fc3 100644 --- a/src/game/game_111600.c +++ b/src/game/game_111600.c @@ -612,7 +612,7 @@ glabel func0f111cf8 ); GLOBAL_ASM( -glabel func0f111d88 +glabel currentPlayerGiveWeapon /* f111d88: 27bdffe0 */ addiu $sp,$sp,-32 /* f111d8c: afbf001c */ sw $ra,0x1c($sp) /* f111d90: afb00018 */ sw $s0,0x18($sp) @@ -902,7 +902,7 @@ glabel func0f1120f0 .L0f112158: /* f112158: 02002025 */ or $a0,$s0,$zero .L0f11215c: -/* f11215c: 0fc44762 */ jal func0f111d88 +/* f11215c: 0fc44762 */ jal currentPlayerGiveWeapon /* f112160: afa7002c */ sw $a3,0x2c($sp) /* f112164: 10400002 */ beqz $v0,.L0f112170 /* f112168: 8fa7002c */ lw $a3,0x2c($sp) diff --git a/src/game/game_129900.c b/src/game/game_129900.c index 121f834eb..1fa8740fd 100644 --- a/src/game/game_129900.c +++ b/src/game/game_129900.c @@ -1442,7 +1442,7 @@ glabel func0f129f54 .L0f12a1ac: /* f12a1ac: 514002ba */ beqzl $t2,.L0f12ac98 /* f12a1b0: 000a102b */ sltu $v0,$zero,$t2 -/* f12a1b4: 0fc180d6 */ jal func0f060358 +/* f12a1b4: 0fc180d6 */ jal propAllocate /* f12a1b8: afaa0158 */ sw $t2,0x158($sp) /* f12a1bc: 24010010 */ addiu $at,$zero,0x10 /* f12a1c0: 8faa0158 */ lw $t2,0x158($sp) @@ -5956,7 +5956,7 @@ glabel func0f12e1c0 /* f12e360: 8fb9002c */ lw $t9,0x2c($sp) /* f12e364: 53200034 */ beqzl $t9,.L0f12e438 /* f12e368: 8fbf0024 */ lw $ra,0x24($sp) -/* f12e36c: 0fc180d6 */ jal func0f060358 +/* f12e36c: 0fc180d6 */ jal propAllocate /* f12e370: 00000000 */ sll $zero,$zero,0x0 /* f12e374: 240a0007 */ addiu $t2,$zero,0x7 /* f12e378: 1040002e */ beqz $v0,.L0f12e434 diff --git a/src/game/game_1668e0.c b/src/game/game_1668e0.c index a79590163..baf93727e 100644 --- a/src/game/game_1668e0.c +++ b/src/game/game_1668e0.c @@ -2163,7 +2163,7 @@ glabel func0f167e7c /* f168358: 00000000 */ sll $zero,$zero,0x0 /* f16835c: 0fc2ddf3 */ jal func0f0b77cc /* f168360: 00000000 */ sll $zero,$zero,0x0 -/* f168364: 0fc0463d */ jal func0f0118f4 +/* f168364: 0fc0463d */ jal currentPlayerInit /* f168368: 00000000 */ sll $zero,$zero,0x0 /* f16836c: 0fc2e00b */ jal func0f0b802c /* f168370: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index e8d5c1664..96c5dca56 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -15346,16 +15346,16 @@ glabel func0f185e20 /* f186178: 00000000 */ sll $zero,$zero,0x0 ); -f32 scenarioCallback2c(f32 arg0, s32 arg1, s32 arg2, struct prop *prop) +f32 scenarioCallback2c(f32 arg0, struct coord *pos, s16 *arg2, struct prop *prop) { f32 result; if (g_Vars.mplayerisrunning && g_MpScenarios[g_MpSetup.scenario].unk2c && - g_MpScenarios[g_MpSetup.scenario].unk2c(arg0, arg1, arg2, prop, &result)) { + g_MpScenarios[g_MpSetup.scenario].unk2c(arg0, pos, arg2, prop, &result)) { return result; } - return func0f0b72a8(arg0, arg1, arg2, prop); + return func0f0b72a8(arg0, pos, arg2, prop); } GLOBAL_ASM( @@ -15856,7 +15856,7 @@ glabel func0f186898 /* f186998: 03197821 */ addu $t7,$t8,$t9 /* f18699c: afaf0050 */ sw $t7,0x50($sp) .L0f1869a0: -/* f1869a0: 0fc44762 */ jal func0f111d88 +/* f1869a0: 0fc44762 */ jal currentPlayerGiveWeapon /* f1869a4: 24040057 */ addiu $a0,$zero,0x57 /* f1869a8: 24040057 */ addiu $a0,$zero,0x57 /* f1869ac: 0fc221f2 */ jal func0f0887c8 @@ -16775,7 +16775,7 @@ glabel func0f187410 /* f187674: 10000016 */ beqz $zero,.L0f1876d0 /* f187678: ac8e0040 */ sw $t6,0x40($a0) .L0f18767c: -/* f18767c: 0fc44762 */ jal func0f111d88 +/* f18767c: 0fc44762 */ jal currentPlayerGiveWeapon /* f187680: 24040036 */ addiu $a0,$zero,0x36 /* f187684: 24040036 */ addiu $a0,$zero,0x36 /* f187688: 0fc221f2 */ jal func0f0887c8 diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 3514e0ba6..0506805cd 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -2673,12 +2673,12 @@ glabel func0f19e900 /* f19e948: 8fa40020 */ lw $a0,0x20($sp) /* f19e94c: 14a10005 */ bne $a1,$at,.L0f19e964 /* f19e950: 00000000 */ sll $zero,$zero,0x0 -/* f19e954: 0fc2a58a */ jal func0f0a9628 +/* f19e954: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19e958: 8fa5001c */ lw $a1,0x1c($sp) /* f19e95c: 10000004 */ beqz $zero,.L0f19e970 /* f19e960: 8fae0028 */ lw $t6,0x28($sp) .L0f19e964: -/* f19e964: 0fc2a58a */ jal func0f0a9628 +/* f19e964: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19e968: 8fa40020 */ lw $a0,0x20($sp) /* f19e96c: 8fae0028 */ lw $t6,0x28($sp) .L0f19e970: @@ -2691,12 +2691,12 @@ glabel func0f19e900 /* f19e988: 2404000b */ addiu $a0,$zero,0xb /* f19e98c: 14a10005 */ bne $a1,$at,.L0f19e9a4 /* f19e990: 00000000 */ sll $zero,$zero,0x0 -/* f19e994: 0fc2a58a */ jal func0f0a9628 +/* f19e994: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19e998: 8fa5001c */ lw $a1,0x1c($sp) /* f19e99c: 10000004 */ beqz $zero,.L0f19e9b0 /* f19e9a0: 8fbf0014 */ lw $ra,0x14($sp) .L0f19e9a4: -/* f19e9a4: 0fc2a58a */ jal func0f0a9628 +/* f19e9a4: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19e9a8: 2404000b */ addiu $a0,$zero,0xb /* f19e9ac: 8fbf0014 */ lw $ra,0x14($sp) .L0f19e9b0: @@ -4132,14 +4132,14 @@ glabel func0f19f994 /* f19fdbc: 00000000 */ sll $zero,$zero,0x0 /* f19fdc0: a6a00476 */ sh $zero,0x476($s5) .L0f19fdc4: -/* f19fdc4: 0fc2a58a */ jal func0f0a9628 +/* f19fdc4: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19fdc8: 02202025 */ or $a0,$s1,$zero /* f19fdcc: 10000006 */ beqz $zero,.L0f19fde8 /* f19fdd0: 24010012 */ addiu $at,$zero,0x12 .L0f19fdd4: /* f19fdd4: 14410003 */ bne $v0,$at,.L0f19fde4 /* f19fdd8: 02202025 */ or $a0,$s1,$zero -/* f19fddc: 0fc2a58a */ jal func0f0a9628 +/* f19fddc: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19fde0: 02002825 */ or $a1,$s0,$zero .L0f19fde4: /* f19fde4: 24010012 */ addiu $at,$zero,0x12 @@ -4166,14 +4166,14 @@ glabel func0f19f994 /* f19fe34: 00000000 */ sll $zero,$zero,0x0 /* f19fe38: a6a00478 */ sh $zero,0x478($s5) .L0f19fe3c: -/* f19fe3c: 0fc2a58a */ jal func0f0a9628 +/* f19fe3c: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19fe40: 2404000b */ addiu $a0,$zero,0xb /* f19fe44: 10000006 */ beqz $zero,.L0f19fe60 /* f19fe48: a2a0045a */ sb $zero,0x45a($s5) .L0f19fe4c: /* f19fe4c: 14610003 */ bne $v1,$at,.L0f19fe5c /* f19fe50: 2404000b */ addiu $a0,$zero,0xb -/* f19fe54: 0fc2a58a */ jal func0f0a9628 +/* f19fe54: 0fc2a58a */ jal currentPlayerGiveAmmo /* f19fe58: 02002825 */ or $a1,$s0,$zero .L0f19fe5c: /* f19fe5c: a2a0045a */ sb $zero,0x45a($s5) @@ -6076,7 +6076,7 @@ glabel func0f1a1824 /* f1a1868: 24010035 */ addiu $at,$zero,0x35 /* f1a186c: 14410003 */ bne $v0,$at,.L0f1a187c /* f1a1870: 24040020 */ addiu $a0,$zero,0x20 -/* f1a1874: 0fc2a58a */ jal func0f0a9628 +/* f1a1874: 0fc2a58a */ jal currentPlayerGiveAmmo /* f1a1878: 00002825 */ or $a1,$zero,$zero .L0f1a187c: /* f1a187c: 3c07800a */ lui $a3,%hi(g_Vars) @@ -6338,7 +6338,7 @@ glabel func0f1a1bec /* f1a1c04: 0fc68609 */ jal func0f1a1824 /* f1a1c08: a04f0000 */ sb $t7,0x0($v0) /* f1a1c0c: 24040014 */ addiu $a0,$zero,0x14 -/* f1a1c10: 0fc2a58a */ jal func0f0a9628 +/* f1a1c10: 0fc2a58a */ jal currentPlayerGiveAmmo /* f1a1c14: 00002825 */ or $a1,$zero,$zero /* f1a1c18: 00002025 */ or $a0,$zero,$zero /* f1a1c1c: 0fc127cb */ jal chrSetStageFlag diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index 1ee5f399b..5456b8bbb 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -172,7 +172,7 @@ glabel menuhandler001a3340 /* f1a33b0: 24010001 */ addiu $at,$zero,0x1 /* f1a33b4: 11c10003 */ beq $t6,$at,.L0f1a33c4 /* f1a33b8: 00000000 */ sll $zero,$zero,0x0 -/* f1a33bc: 0fc44762 */ jal func0f111d88 +/* f1a33bc: 0fc44762 */ jal currentPlayerGiveWeapon /* f1a33c0: 01c02025 */ or $a0,$t6,$zero .L0f1a33c4: /* f1a33c4: 0fc44bd8 */ jal func0f112f60 diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index bc2239239..10f339b37 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -16307,7 +16307,7 @@ u32 var8009d024 = 0; u32 var8009d028 = 0; u32 var8009d02c = 0; struct stagesetup g_StageSetup = {0}; -u32 var8009d050 = 0; +u8 *g_GeCreditsData = NULL; u32 var8009d054 = 0; u32 var8009d058 = 0; u32 var8009d05c = 0; @@ -16928,8 +16928,8 @@ u32 var8009ddc0 = 0; u32 var8009ddc4 = 0; u32 var8009ddc8 = 0; u32 var8009ddcc = 0; -u32 var8009ddd0 = 0; -u32 var8009ddd4 = 0; +s32 g_DefaultWeapon = 0; +s32 g_DefaultWeaponArgument = 0; f32 var8009ddd8 = 0; f32 var8009dddc = 0; f32 var8009dde0 = 0; @@ -16954,19 +16954,8 @@ u32 var8009de28 = 0; s32 var8009de2c = 0; u32 var8009de30 = 0; u32 var8009de34 = 0; -u32 var8009de38 = 0; -u32 var8009de3c = 0; -u32 var8009de40 = 0; -u32 var8009de44 = 0; -u32 var8009de48 = 0; -u32 var8009de4c = 0; -u32 var8009de50 = 0; -u32 var8009de54 = 0; -u32 var8009de58 = 0; -u32 var8009de5c = 0; -u32 var8009de60 = 0; -u32 var8009de64 = 0; -u32 var8009de68 = 0; +u16 g_SpawnPoints[MAX_SPAWNPOINTS] = {0}; +s32 g_NumSpawnPoints = 0; u32 var8009de6c = 0; u32 var8009de70 = 0; u32 var8009de74 = 0; diff --git a/src/include/constants.h b/src/include/constants.h index fa5ed5a6b..96d35cf6d 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -196,7 +196,7 @@ #define CHEAT_PSYCHOSISGUN 33 #define CHEAT_PP9I 34 #define CHEAT_CC13 35 -#define CHEAT_KLO1313 36 +#define CHEAT_KL01313 36 #define CHEAT_KF7SPECIAL 37 #define CHEAT_ZZT 38 #define CHEAT_DMC 39 @@ -490,6 +490,20 @@ #define IDLEACTION_OPERATING 0x04 #define IDLEACTION_OPERATING_PAD 0x05 +#define INTROTYPE_SPAWN 0 +#define INTROTYPE_WEAPON 1 +#define INTROTYPE_AMMO 2 +#define INTROTYPE_3 3 +#define INTROTYPE_4 4 +#define INTROTYPE_OUTFIT 5 +#define INTROTYPE_6 6 +#define INTROTYPE_WATCHTIME 7 +#define INTROTYPE_CREDITOFFSET 8 +#define INTROTYPE_CASE 9 +#define INTROTYPE_CASERESPAWN 10 +#define INTROTYPE_HILL 11 +#define INTROTYPE_END 12 + #define INVENTORYFUNCTYPE_NONE 0 #define INVENTORYFUNCTYPE_SHOOT 1 #define INVENTORYFUNCTYPE_THROW 2 @@ -560,6 +574,7 @@ #define MAX_MPCHRS (4 + MAX_SIMULANTS) #define MAX_OBJECTIVES 10 #define MAX_SIMULANTS 8 +#define MAX_SPAWNPOINTS 24 #define MAX_SQUADRONS 16 #define MAX_TEAMS 8 @@ -1796,7 +1811,7 @@ #define WEAPON_CC13 0x25 #define WEAPON_KL01313 0x26 #define WEAPON_KF7SPECIAL 0x27 -#define WEAPON_ZZT9MM 0x28 +#define WEAPON_ZZT 0x28 #define WEAPON_DMC 0x29 #define WEAPON_AR53 0x2a #define WEAPON_RCP45 0x2b diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index 5f815a25c..0f5d4130a 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -49,7 +49,7 @@ f32 chrGetMaxDamage(struct chrdata *chr); void chrAddHealth(struct chrdata *chr, f32 health); f32 chrGetArmor(struct chrdata *chr); s32 getLowestUnusedChrId(void); -u32 func0f020668(void); +void func0f020668(struct prop *prop, s32 arg1); struct prop *func0f020b14(struct prop *prop, s32 arg0, s32 arg1, s32 arg2, f32 arg3, s32 arg4); struct prop *func0f020cc8(s32 arg0, s32 arg1, s32 arg2, f32 arg3, s32 arg4); u32 func0f020d44(void); @@ -413,7 +413,7 @@ bool func0f04d44c(struct chrdata *chr); void chrEmitSparks(struct chrdata *chr); u32 func0f04e418(void); -u32 getNumChrs(void); +s32 getNumChrs(void); void incrementByte(u8 *dst, u8 amount); s32 chrResolvePadId(struct chrdata *chr, s32 pad_id); f32 propGetDistanceToProp(struct prop *a, struct prop *b); diff --git a/src/include/game/game_011110.h b/src/include/game/game_011110.h index d89872e0d..f0417407e 100644 --- a/src/include/game/game_011110.h +++ b/src/include/game/game_011110.h @@ -6,10 +6,8 @@ void func0f011110(void); void func0f011124(s32 value); u32 func0f011130(void); -u32 func0f011560(void); -u32 func0f011630(void); -u32 func0f0118f4(void); -void currentPlayerInitGunsHeld(void); -void func0f012530(s32 arg0); +void func0f011560(s32 weapon); +u32 currentPlayerInitEyespy(void); +void currentPlayerInit(void); #endif diff --git a/src/include/game/game_012450.h b/src/include/game/game_012450.h new file mode 100644 index 000000000..dc4bd379b --- /dev/null +++ b/src/include/game/game_012450.h @@ -0,0 +1,9 @@ +#ifndef IN_GAME_GAME_012450_H +#define IN_GAME_GAME_012450_H +#include +#include "types.h" + +void currentPlayerInitGunsHeld(void); +void func0f012530(s32 arg0); + +#endif diff --git a/src/include/game/game_0601b0.h b/src/include/game/game_0601b0.h index 18827844e..8f4a18068 100644 --- a/src/include/game/game_0601b0.h +++ b/src/include/game/game_0601b0.h @@ -6,7 +6,7 @@ u32 func0f0601b0(void); void propHide(struct prop *prop); u32 func0f060300(struct prop *prop); -struct prop *func0f060358(void); +struct prop *propAllocate(void); void func0f060438(struct prop *prop); void func0f0604bc(struct prop *prop); u32 func0f060538(void); diff --git a/src/include/game/game_097a50.h b/src/include/game/game_097a50.h index eb19cd8cf..ad6ffd139 100644 --- a/src/include/game/game_097a50.h +++ b/src/include/game/game_097a50.h @@ -158,7 +158,7 @@ u32 func0f0a9464(void); u32 func0f0a9494(void); u32 func0f0a94d0(void); void func0f0a95ec(u32 arg0, u32 arg1); -u32 func0f0a9628(void); +void currentPlayerGiveAmmo(s32 ammotype, s32 quantity); u32 func0f0a9770(void); u32 currentPlayerGetAmmoCount(s8 arg0); u32 func0f0a98f4(void); diff --git a/src/include/game/game_0b28d0.h b/src/include/game/game_0b28d0.h index c1d6afcf1..31793d6b2 100644 --- a/src/include/game/game_0b28d0.h +++ b/src/include/game/game_0b28d0.h @@ -68,14 +68,14 @@ u32 func0f0b65a8(void); u32 func0f0b65f8(void); u32 func0f0b6764(void); f32 func0f0b69d0(f32 arg0, s32 arg1, s32 arg2, struct prop *prop, s16 *arg4, s16 arg5); -f32 func0f0b72a8(f32 arg0, s32 arg1, s32 arg2, struct prop *prop); +f32 func0f0b72a8(f32 arg0, struct coord *pos, s16 *arg2, struct prop *prop); u32 func0f0b72dc(void); u32 func0f0b77cc(void); u32 func0f0b7c60(void); u32 func0f0b802c(void); -u32 func0f0b85a0(void); +void func0f0b85a0(f32 *arg0, struct coord *pos); u32 func0f0b85f8(void); -u32 func0f0b872c(void); +void func0f0b872c(s32 *bodynum, s32 *headnum, s32 arg2); u32 func0f0b8ba0(void); u32 func0f0b9538(void); void setTickMode(s32 tickmode); @@ -118,7 +118,7 @@ u32 func0f0bbf14(void); u32 func0f0bbf78(void); void currentPlayerSurroundWithExplosions(u32 arg0); u32 func0f0bc120(void); -u32 func0f0bc3f0(void); +void func0f0bc3f0(void); void optionsSetHiRes(bool enable); u32 func0f0bc44c(void); u32 func0f0bc478(void); diff --git a/src/include/game/game_0c79f0.h b/src/include/game/game_0c79f0.h index 919b720b4..488f06b17 100644 --- a/src/include/game/game_0c79f0.h +++ b/src/include/game/game_0c79f0.h @@ -31,7 +31,7 @@ u32 func0f0c8aa8(void); u32 func0f0c8b90(void); u32 func0f0cb79c(void); u32 func0f0cb89c(void); -u32 func0f0cb8c4(void); +void func0f0cb8c4(struct player *player); u32 func0f0cb904(void); u32 func0f0cba88(void); u32 func0f0cbb48(void); diff --git a/src/include/game/game_111600.h b/src/include/game/game_111600.h index 3242c6006..4249ccc39 100644 --- a/src/include/game/game_111600.h +++ b/src/include/game/game_111600.h @@ -19,8 +19,8 @@ u32 func0f111be8(void); u32 func0f111c30(void); u32 func0f111c9c(void); u32 func0f111cf8(void); -u32 func0f111d88(void); -u32 func0f111e28(void); +void currentPlayerGiveWeapon(s32 weapon); +void func0f111e28(s32 weapon, s32 weaponarg); void func0f111ea4(u32 arg0); u32 func0f111fcc(void); u32 func0f112054(void); diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index c1acc6ba6..a2c39d778 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -157,7 +157,7 @@ u32 func0f185c14(void); s32 scenarioRadar(s32 value); bool scenarioRadar2(s32 *displaylist, struct prop *prop); u32 func0f185e20(void); -f32 scenarioCallback2c(f32 arg0, s32 arg1, s32 arg2, struct prop *prop); +f32 scenarioCallback2c(f32 arg0, struct coord *pos, s16 *arg2, struct prop *prop); u32 func0f18620c(void); s32 scenarioGetMaxTeams(void); void scenarioCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); diff --git a/src/include/game/game_187770.h b/src/include/game/game_187770.h index 4ca92274b..b006c4db0 100644 --- a/src/include/game/game_187770.h +++ b/src/include/game/game_187770.h @@ -114,7 +114,7 @@ u32 func0f18e16c(void); u32 func0f18e39c(void); u32 func0f18e420(void); u32 func0f18e4c8(void); -u32 func0f18e558(void); +void func0f18e558(void); u32 func0f18e57c(void); u32 func0f18e5ac(void); s32 teamGetIndex(s32 team); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index b1b2a6e5d..2c503741b 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -181,10 +181,7 @@ struct g_vars { /*0004af*/ s8 unk0004af; // initialised to 3 /*0004b0*/ u32 mpquickteam; /*0004b4*/ s32 stagenum; - /*0004b8*/ u32 unk0004b8; - /*0004bc*/ u32 unk0004bc; - /*0004c0*/ u32 unk0004c0; - /*0004c4*/ u32 unk0004c4; + /*0004b8*/ u32 unk0004b8[4]; /*0004c8*/ u32 unk0004c8; /*0004cc*/ s32 in_cutscene; /*0004d0*/ u8 unk0004d0; @@ -436,6 +433,7 @@ extern u32 var80091900; extern u32 var80091910; extern u32 var80091924; extern u32 var80091f50; +extern u32 var800923a4; extern u32 var800926d0; extern u32 var800926e8; extern u32 var80092828; @@ -583,7 +581,7 @@ extern u32 var8009ce98; extern u32 var8009cf10; extern u32 var8009cf88; extern struct stagesetup g_StageSetup; -extern u32 var8009d050; +extern u8 *g_GeCreditsData; extern struct objective *g_Objectives[MAX_OBJECTIVES]; extern u32 var8009d088; extern u32 var8009d0b0; @@ -613,8 +611,8 @@ extern u32 var8009dd70; extern u32 var8009dd78; extern u32 var8009ddc8; extern u32 var8009ddcc; -extern u32 var8009ddd0; -extern u32 var8009ddd4; +extern s32 g_DefaultWeapon; +extern s32 g_DefaultWeaponArgument; extern f32 var8009ddd8; extern f32 var8009dddc; extern f32 var8009dde0; @@ -636,7 +634,8 @@ extern f32 var8009de1c; extern u32 var8009de28; extern s32 var8009de2c; extern u32 var8009de30; -extern u32 var8009de38; +extern u16 g_SpawnPoints[MAX_SPAWNPOINTS]; +extern s32 g_NumSpawnPoints; extern u32 var8009de78; extern u32 var8009de98; extern u32 var8009de9c; diff --git a/src/include/intro.h b/src/include/intro.h index 33d391553..10b7462d2 100644 --- a/src/include/intro.h +++ b/src/include/intro.h @@ -31,9 +31,9 @@ mkword(id), \ mkword(pad), -#define hill(room) \ +#define hill(pad) \ mkword(0x0b), \ - mkword(room), + mkword(pad), #define endintro \ mkword(0x0c), diff --git a/src/include/library/library_16110.h b/src/include/library/library_16110.h index 3af309344..db0c292fb 100644 --- a/src/include/library/library_16110.h +++ b/src/include/library/library_16110.h @@ -57,7 +57,7 @@ u32 func0001a110(void); u32 func0001a1c0(void); u32 func0001a25c(void); u32 func0001a2dc(void); -u32 func0001a3d0(void); -u32 func0001a3dc(void); +f32 func0001a3d0(f32 arg0); +f32 func0001a3dc(f32 arg0); #endif diff --git a/src/include/library/library_233c0.h b/src/include/library/library_233c0.h index e6013b795..1798c9d2d 100644 --- a/src/include/library/library_233c0.h +++ b/src/include/library/library_233c0.h @@ -77,7 +77,7 @@ u32 func0002901c(void); u32 func000296a0(void); u32 func00029ffc(void); u32 func0002a13c(void); -u32 func0002a1b0(void); +f32 func0002a1b0(struct coord *coord, f32 arg1, s16 *room, u16 *arg3, u16 *arg4, u16 *arg5, u32 *arg6, u32 arg7, u32 arg8); u32 func0002a330(void); f32 func0002a36c(struct coord *coord, s16 *arg1, s32 arg2, s32 arg3); u32 func0002a400(void); diff --git a/src/include/math.h b/src/include/math.h new file mode 100644 index 000000000..36b58f32f --- /dev/null +++ b/src/include/math.h @@ -0,0 +1,7 @@ +#ifndef IN_MATH_H +#define IN_MATH_H + +// @bug: Should be 3.1415926f +#define M_PI 3.1410926f + +#endif diff --git a/src/include/setup/setup_000000.h b/src/include/setup/setup_000000.h index dc0b96ba0..aa68a4bbc 100644 --- a/src/include/setup/setup_000000.h +++ b/src/include/setup/setup_000000.h @@ -7,7 +7,7 @@ extern s32 g_StageNum; extern u64 rand_seed; extern struct chrdata *g_ChrsA; // pointer to first element of chrs array -extern u32 g_NumChrsA; +extern s32 g_NumChrsA; extern u32 var8005ce60; extern u32 var8005ce64; extern u32 var8005ce68; @@ -203,7 +203,7 @@ extern u32 var80061a80; extern u32 var80061af4; extern u32 var80061b68; extern u32 var80061bf0; -extern u32 var800623a4; +extern struct coord var800623a4; extern u32 var800623b0; extern u32 var80062400; extern u32 var80062410; diff --git a/src/include/setup/setup_0160b0.h b/src/include/setup/setup_0160b0.h index 631574157..f6a679df1 100644 --- a/src/include/setup/setup_0160b0.h +++ b/src/include/setup/setup_0160b0.h @@ -5,9 +5,6 @@ extern struct menu_dialog menudialog_18d78; extern struct menu_dialog menudialog_18d90; -extern u32 g_8007073c; -extern u32 g_PlayersWithControl[]; -extern bool g_PlayerInvincible; extern u32 var80070090; extern u32 var80070098; extern u32 var800700a0; @@ -60,11 +57,17 @@ extern u32 var800705bc; extern u32 var800705c0; extern u32 var800706c8; extern bool g_HiRes; +extern u32 var8007072c; +extern u32 var80070738; +extern u32 var8007073c; +extern struct gecreditsdata *g_CurrentGeCreditsData; extern u32 var80070744; extern u32 var80070748; extern u32 var8007074c; +extern bool g_PlayersWithControl[]; +extern bool g_PlayerInvincible; extern u32 var80070764; -extern u32 var80070768; +extern s16 var80070768[]; extern u32 var8007077c; extern u32 var80070780; extern u32 var8007078c; diff --git a/src/include/types.h b/src/include/types.h index 46d0efd9c..f4c1766ff 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1034,7 +1034,7 @@ struct player { /*0x0138*/ u32 unk0138; /*0x013c*/ u32 unk013c; /*0x0140*/ u32 unk0140; - /*0x0144*/ u32 unk0144; + /*0x0144*/ f32 unk0144; /*0x0148*/ u32 unk0148; /*0x014c*/ u32 unk014c; /*0x0150*/ u32 unk0150; @@ -1149,12 +1149,10 @@ struct player { /*0x0304*/ u32 colourfadebluenew; /*0x0308*/ f32 colourfadefracold; /*0x030c*/ f32 colourfadefracnew; - /*0x0310*/ u32 unk0310; - /*0x0314*/ u32 unk0314; - /*0x0318*/ u32 unk0318; + /*0x0310*/ struct coord bondprevpos; /*0x031c*/ u32 unk031c; /*0x0320*/ u32 unk0320; - /*0x0324*/ u32 unk0324; + /*0x0324*/ u32 bondtype; /*0x0328*/ u32 unk0328; /*0x032c*/ u32 unk032c; /*0x0330*/ u32 unk0330; @@ -1172,19 +1170,15 @@ struct player { /*0x0360*/ u32 unk0360; /*0x0364*/ u32 unk0364; /*0x0368*/ u32 unk0368; - /*0x036c*/ u32 unk036c; - /*0x0370*/ u32 unk0370; - /*0x0374*/ u32 unk0374; + /*0x036c*/ f32 unk036c; + /*0x0370*/ f32 unk0370; + /*0x0374*/ f32 unk0374; /*0x0378*/ u32 unk0378; /*0x037c*/ u32 unk037c; /*0x0380*/ u32 unk0380; /*0x0384*/ u32 unk0384; - /*0x0388*/ u32 unk0388; - /*0x038c*/ u32 unk038c; - /*0x0390*/ u32 unk0390; - /*0x0394*/ u32 unk0394; - /*0x0398*/ u32 unk0398; - /*0x039c*/ u32 unk039c; + /*0x0388*/ struct coord headlook; + /*0x0394*/ struct coord headup; /*0x03a0*/ u32 unk03a0; /*0x03a4*/ u32 unk03a4; /*0x03a8*/ u32 unk03a8; @@ -2367,8 +2361,10 @@ struct player { /*0x160c*/ u32 unk160c; /*0x1610*/ u32 unk1610; /*0x1614*/ u32 unk1614; - /*0x1618*/ u32 unk1618; - /*0x161c*/ u32 unk161c; + /*0x1618*/ u16 unk1618; + /*0x161a*/ u16 unk161a; + /*0x161c*/ u16 unk161c; + /*0x161e*/ u16 unk161e; /*0x1620*/ u32 unk1620; /*0x1624*/ struct prop *lookingatprop; /*0x1628*/ u32 unk1628; @@ -2565,7 +2561,7 @@ struct player { /*0x19b8*/ u32 unk19b8; /*0x19bc*/ u32 unk19bc; /*0x19c0*/ u32 unk19c0; - /*0x19c4*/ u32 unk19c4; + /*0x19c4*/ f32 unk19c4; /*0x19c8*/ u32 unk19c8; /*0x19cc*/ u32 unk19cc; /*0x19d0*/ u32 unk19d0; @@ -2675,10 +2671,10 @@ struct player { /*0x1b70*/ f32 unk1b70; /*0x1b74*/ f32 unk1b74; /*0x1b78*/ u32 unk1b78; - /*0x1b7c*/ u32 unk1b7c; - /*0x1b80*/ u32 unk1b80; - /*0x1b84*/ u32 unk1b84; - /*0x1b88*/ u32 unk1b88; + /*0x1b7c*/ s32 bondviewlevtime60; + /*0x1b80*/ f32 bondwatchtime60; + /*0x1b84*/ bool tickdiefinished; + /*0x1b88*/ s32 introanimnum; /*0x1b8c*/ u32 unk1b8c; /*0x1b90*/ u32 unk1b90; /*0x1b94*/ u32 unk1b94; @@ -2744,7 +2740,7 @@ struct stagesetup { /*0x00*/ void *unk00; /*0x04*/ void *unk04; /*0x08*/ struct coverdefinition *cover; - /*0x0c*/ u8 *intro; + /*0x0c*/ s32 *intro; /*0x10*/ u8 *props; /*0x14*/ struct path *paths; /*0x18*/ struct ailist *ailists; @@ -4290,7 +4286,7 @@ struct mpscenario { s32 (*radarfunc)(s32 value); bool (*radar2func)(s32 *displaylist, struct prop *prop); bool (*highlightfunc)(struct prop *prop, u32 *colour); - bool (*unk2c)(f32 arg0, s32 arg1, s32 arg2, struct prop *prop, f32 *arg4); + bool (*unk2c)(f32 arg0, struct coord *pos, s16 *arg2, struct prop *prop, f32 *arg4); s32 (*maxteamsfunc)(void); bool (*isroomhighlightedfunc)(s16 room); void (*unk38)(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); @@ -4959,4 +4955,13 @@ struct var800a2380 { /*0x2c8*/ u32 unk2c8; }; +struct gecreditsdata { + /*0x00*/ u16 text1; + /*0x02*/ u16 text2; + /*0x04*/ u16 posoffset1; + /*0x06*/ u16 alignoffset1; + /*0x08*/ u16 posoffset2; + /*0x0a*/ u16 alignoffset2; +}; + #endif diff --git a/src/setup/cheats.c b/src/setup/cheats.c index a5adbdd6c..7391fbb55 100644 --- a/src/setup/cheats.c +++ b/src/setup/cheats.c @@ -50,7 +50,7 @@ struct cheat g_Cheats[NUM_CHEATS] = { { 0x546c, 120, 4, DIFF_PA, CHEATFLAG_TIMED }, // Psychosis Gun { 0x546d, 36, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // PP9i { 0x546e, 37, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // CC13 - { 0x546f, 38, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // KLO1313 + { 0x546f, 38, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // KL01313 { 0x5470, 39, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // KF7 Special { 0x5471, 40, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // ZZT (9mm) { 0x5472, 41, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // DMC diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 9b5fcbb77..8fd941bdc 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -7920,9 +7920,7 @@ u32 var80062394 = 0x00000000; u32 var80062398 = 0x00000000; u32 var8006239c = 0x00000000; u32 var800623a0 = 0x00000000; -u32 var800623a4 = 0x00000000; -u32 var800623a8 = 0x00000000; -u32 var800623ac = 0x00000000; +struct coord var800623a4 = {0, 0, 0}; u32 var800623b0 = 0x00000000; u32 var800623b4 = 0x00000001; u32 var800623b8 = 0x00000003; @@ -8302,7 +8300,7 @@ s32 var80062984 = 5000; struct chrdata *g_ChrsA = NULL; // 8006298c -u32 g_NumChrsA = 0; +s32 g_NumChrsA = 0; u32 var80062990 = 0x00000000; u32 var80062994 = 0x00000000; diff --git a/src/setup/setup_0160b0.c b/src/setup/setup_0160b0.c index d1093b68e..8b289f756 100644 --- a/src/setup/setup_0160b0.c +++ b/src/setup/setup_0160b0.c @@ -438,15 +438,15 @@ u32 var8007071c = 0x00000000; u32 var80070720 = 0x00000000; u32 var80070724 = 0x00000000; u32 var80070728 = 0x3f800000; -u32 var8007072c = 0x00000001; +u32 var8007072c = 1; u32 var80070730 = 0xffffffff; u32 var80070734 = 0xffffffff; -u32 var80070738 = 0x00000000; -u32 g_8007073c = false; -u32 var80070740 = 0x00000000; -u32 var80070744 = 0x00000000; +u32 var80070738 = 0; +u32 var8007073c = 0; +struct gecreditsdata *g_CurrentGeCreditsData = NULL; +u32 var80070744 = 0; u32 var80070748 = 0; -u32 var8007074c = 0x00000000; +u32 var8007074c = 0; // 80070750 bool g_PlayersWithControl[] = { @@ -455,12 +455,8 @@ bool g_PlayersWithControl[] = { bool g_PlayerInvincible = false; u32 var80070764 = 0x00000000; -u32 var80070768 = 0x001a001c; -u32 var8007076c = 0x00200021; -u32 var80070770 = 0x00220023; -u32 var80070774 = 0x00240025; -u32 var80070778 = 0x00000000; -u32 var8007077c = 0x00000000; +s16 var80070768[] = { 26, 28, 32, 33, 34, 35, 36, 37, 0 }; +u32 var8007077c = 0x00000000; // index into var80070768 u32 var80070780 = 0x00000000; u32 var80070784 = 0x00000000; u32 var80070788 = 0x00000000;