Decompile shotCalculateHits
This commit is contained in:
parent
5ea9349d70
commit
11b7ae7cb1
|
|
@ -1840,7 +1840,7 @@ u8 func040e_outro[] = {
|
|||
set_chr_shooting_in_cutscene(CHR_JONATHAN, FALSE)
|
||||
|
||||
wait_until(296, 0x79)
|
||||
play_sound(SFX_8076, CHANNEL_10)
|
||||
play_sound(SFX_HIT_CHR, CHANNEL_10)
|
||||
|
||||
wait_until(310, 0x7a)
|
||||
play_sound(SFX_ARGH_MALE_0090, CHANNEL_10)
|
||||
|
|
|
|||
|
|
@ -12360,12 +12360,12 @@ void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct c
|
|||
s32 race;
|
||||
|
||||
if (chrIsUsingPaintball(chr2)) {
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 25);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_19);
|
||||
return;
|
||||
}
|
||||
|
||||
if (chrGetShield(chr) > 0.0f) {
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 0);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_00);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -12374,14 +12374,14 @@ void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct c
|
|||
|| prop->type == PROPTYPE_DOOR
|
||||
|| hitpart == HITPART_GUN
|
||||
|| hitpart == HITPART_HAT) {
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 0);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_00);
|
||||
return;
|
||||
}
|
||||
|
||||
race = CHRRACE(chr);
|
||||
|
||||
if (race == RACE_DRCAROLL || race == RACE_ROBOT || race == RACE_EYESPY) {
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 1);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_01);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -12395,11 +12395,11 @@ void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct c
|
|||
coord3.y = coord2->y * 42.0f + coord->y;
|
||||
coord3.z = coord2->z * 42.0f + coord->z;
|
||||
|
||||
sparksCreate(chrprop->rooms[0], chrprop, &coord3, coord2, 0, 4);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, &coord3, coord2, 0, SPARKTYPE_04);
|
||||
}
|
||||
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 2);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, 3);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_02);
|
||||
sparksCreate(chrprop->rooms[0], chrprop, coord, coord2, 0, SPARKTYPE_03);
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
|
|
@ -14710,9 +14710,9 @@ glabel func0f027e1c
|
|||
/* f028190: 2861000f */ slti $at,$v1,0xf
|
||||
/* f028194: 10200029 */ beqz $at,.L0f02823c
|
||||
/* f028198: 00036080 */ sll $t4,$v1,0x2
|
||||
/* f02819c: 3c088008 */ lui $t0,%hi(somethings)
|
||||
/* f02819c: 3c088008 */ lui $t0,%hi(g_SurfaceTypes)
|
||||
/* f0281a0: 010c4021 */ addu $t0,$t0,$t4
|
||||
/* f0281a4: 8d084458 */ lw $t0,%lo(somethings)($t0)
|
||||
/* f0281a4: 8d084458 */ lw $t0,%lo(g_SurfaceTypes)($t0)
|
||||
/* f0281a8: 850a000a */ lh $t2,0xa($t0)
|
||||
/* f0281ac: 59400024 */ blezl $t2,.L0f028240
|
||||
/* f0281b0: 8d2f02d4 */ lw $t7,0x2d4($t1)
|
||||
|
|
@ -14777,22 +14777,22 @@ glabel func0f027e1c
|
|||
/* f02828c: 15c10035 */ bne $t6,$at,.L0f028364
|
||||
/* f028290: 00000000 */ nop
|
||||
/* f028294: 8622003a */ lh $v0,0x3a($s1)
|
||||
/* f028298: 3c038008 */ lui $v1,%hi(somethings)
|
||||
/* f028298: 3c038008 */ lui $v1,%hi(g_SurfaceTypes)
|
||||
/* f02829c: 3c0f800b */ lui $t7,%hi(g_Textures)
|
||||
/* f0282a0: 04410003 */ bgez $v0,.L0f0282b0
|
||||
/* f0282a4: 00000000 */ nop
|
||||
/* f0282a8: 1000000a */ b .L0f0282d4
|
||||
/* f0282ac: 8c634458 */ lw $v1,%lo(somethings)($v1)
|
||||
/* f0282ac: 8c634458 */ lw $v1,%lo(g_SurfaceTypes)($v1)
|
||||
.L0f0282b0:
|
||||
/* f0282b0: 8defabc0 */ lw $t7,%lo(g_Textures)($t7)
|
||||
/* f0282b4: 0002c0c0 */ sll $t8,$v0,0x3
|
||||
/* f0282b8: 3c038008 */ lui $v1,%hi(somethings)
|
||||
/* f0282b8: 3c038008 */ lui $v1,%hi(g_SurfaceTypes)
|
||||
/* f0282bc: 01f8c821 */ addu $t9,$t7,$t8
|
||||
/* f0282c0: 932b0000 */ lbu $t3,0x0($t9)
|
||||
/* f0282c4: 316a000f */ andi $t2,$t3,0xf
|
||||
/* f0282c8: 000a6880 */ sll $t5,$t2,0x2
|
||||
/* f0282cc: 006d1821 */ addu $v1,$v1,$t5
|
||||
/* f0282d0: 8c634458 */ lw $v1,%lo(somethings)($v1)
|
||||
/* f0282d0: 8c634458 */ lw $v1,%lo(g_SurfaceTypes)($v1)
|
||||
.L0f0282d4:
|
||||
/* f0282d4: 0c004b70 */ jal random
|
||||
/* f0282d8: afa30070 */ sw $v1,0x70($sp)
|
||||
|
|
|
|||
|
|
@ -4618,7 +4618,7 @@ void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct gse
|
|||
chr->hidden |= CHRHFLAG_00000001;
|
||||
} else {
|
||||
// Metal helmets don't fall off and make a metallic chink noise when shot
|
||||
u16 sounds[] = { SFX_HATHIT_807B, SFX_HATHIT_8079, SFX_HATHIT_807C };
|
||||
u16 sounds[] = { SFX_HIT_METAL_807B, SFX_HIT_METAL_8079, SFX_HATHIT_807C };
|
||||
damage = 0;
|
||||
|
||||
func0f0939f8(NULL, chr->prop, sounds[random() % 3], -1,
|
||||
|
|
@ -9650,7 +9650,7 @@ void chrTickDie(struct chrdata *chr)
|
|||
var80068080 -= 5;
|
||||
func0f0939f8(NULL, prop, SFX_SHIELD_DAMAGE, -1,
|
||||
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
||||
sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, 1);
|
||||
sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, SPARKTYPE_01);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -28677,6 +28677,6 @@ void chrDrCarollEmitSparks(struct chrdata *chr)
|
|||
{
|
||||
if (chr && chr->prop) {
|
||||
func0f0939f8(0, chr->prop, SFX_SHIELD_DAMAGE, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
||||
sparksCreate(chr->prop->rooms[0], chr->prop, &chr->prop->pos, NULL, 0, 1);
|
||||
sparksCreate(chr->prop->rooms[0], chr->prop, &chr->prop->pos, NULL, 0, SPARKTYPE_01);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7935,7 +7935,7 @@ s32 handTickIncAttackEmpty(struct handweaponinfo *info, s32 handnum, struct hand
|
|||
struct audiohandle *handle;
|
||||
#endif
|
||||
|
||||
handle = sndStart(var80095200, SFX_FIREEMPTY_MAIAN, NULL, -1, -1, -1, -1, -1);
|
||||
handle = sndStart(var80095200, SFX_HIT_WATER, NULL, -1, -1, -1, -1, -1);
|
||||
|
||||
if (handle) {
|
||||
func00033e50(handle, 16, *(s32 *)&speed);
|
||||
|
|
@ -27667,13 +27667,13 @@ glabel var7f1aca94
|
|||
/* f0a7ddc: 3c0f800b */ lui $t7,%hi(g_Textures)
|
||||
/* f0a7de0: 8defabc0 */ lw $t7,%lo(g_Textures)($t7)
|
||||
/* f0a7de4: 0003c0c0 */ sll $t8,$v1,0x3
|
||||
/* f0a7de8: 3c0b8008 */ lui $t3,%hi(somethings)
|
||||
/* f0a7de8: 3c0b8008 */ lui $t3,%hi(g_SurfaceTypes)
|
||||
/* f0a7dec: 01f8c821 */ addu $t9,$t7,$t8
|
||||
/* f0a7df0: 8f280000 */ lw $t0,0x0($t9)
|
||||
/* f0a7df4: 00084f02 */ srl $t1,$t0,0x1c
|
||||
/* f0a7df8: 00095080 */ sll $t2,$t1,0x2
|
||||
/* f0a7dfc: 016a5821 */ addu $t3,$t3,$t2
|
||||
/* f0a7e00: 8d6b4458 */ lw $t3,%lo(somethings)($t3)
|
||||
/* f0a7e00: 8d6b4458 */ lw $t3,%lo(g_SurfaceTypes)($t3)
|
||||
/* f0a7e04: 856c0008 */ lh $t4,0x8($t3)
|
||||
/* f0a7e08: 5180017b */ beqzl $t4,.L0f0a83f8
|
||||
/* f0a7e0c: 8fbf0044 */ lw $ra,0x44($sp)
|
||||
|
|
@ -27999,14 +27999,14 @@ glabel var7f1aca94
|
|||
/* f0a82ac: 3c0d800b */ lui $t5,%hi(g_Textures)
|
||||
/* f0a82b0: 8dadabc0 */ lw $t5,%lo(g_Textures)($t5)
|
||||
/* f0a82b4: 000218c0 */ sll $v1,$v0,0x3
|
||||
/* f0a82b8: 3c0a8008 */ lui $t2,%hi(somethings)
|
||||
/* f0a82b8: 3c0a8008 */ lui $t2,%hi(g_SurfaceTypes)
|
||||
/* f0a82bc: 01a3c821 */ addu $t9,$t5,$v1
|
||||
/* f0a82c0: 8f2c0000 */ lw $t4,0x0($t9)
|
||||
/* f0a82c4: 240bffff */ addiu $t3,$zero,-1
|
||||
/* f0a82c8: 000c4702 */ srl $t0,$t4,0x1c
|
||||
/* f0a82cc: 00084880 */ sll $t1,$t0,0x2
|
||||
/* f0a82d0: 01495021 */ addu $t2,$t2,$t1
|
||||
/* f0a82d4: 8d4a4458 */ lw $t2,%lo(somethings)($t2)
|
||||
/* f0a82d4: 8d4a4458 */ lw $t2,%lo(g_SurfaceTypes)($t2)
|
||||
/* f0a82d8: 51400047 */ beqzl $t2,.L0f0a83f8
|
||||
/* f0a82dc: 8fbf0044 */ lw $ra,0x44($sp)
|
||||
/* f0a82e0: a7ab005e */ sh $t3,0x5e($sp)
|
||||
|
|
@ -28017,14 +28017,14 @@ glabel var7f1aca94
|
|||
/* f0a82f4: afa200bc */ sw $v0,0xbc($sp)
|
||||
/* f0a82f8: 3c0e800b */ lui $t6,%hi(g_Textures)
|
||||
/* f0a82fc: 8dceabc0 */ lw $t6,%lo(g_Textures)($t6)
|
||||
/* f0a8300: 3c048008 */ lui $a0,%hi(somethings)
|
||||
/* f0a8300: 3c048008 */ lui $a0,%hi(g_SurfaceTypes)
|
||||
/* f0a8304: 8fac00c0 */ lw $t4,0xc0($sp)
|
||||
/* f0a8308: 01c3c021 */ addu $t8,$t6,$v1
|
||||
/* f0a830c: 8f0f0000 */ lw $t7,0x0($t8)
|
||||
/* f0a8310: 000f6f02 */ srl $t5,$t7,0x1c
|
||||
/* f0a8314: 000dc880 */ sll $t9,$t5,0x2
|
||||
/* f0a8318: 00992021 */ addu $a0,$a0,$t9
|
||||
/* f0a831c: 8c844458 */ lw $a0,%lo(somethings)($a0)
|
||||
/* f0a831c: 8c844458 */ lw $a0,%lo(g_SurfaceTypes)($a0)
|
||||
/* f0a8320: 84850008 */ lh $a1,0x8($a0)
|
||||
/* f0a8324: 58a0001e */ blezl $a1,.L0f0a83a0
|
||||
/* f0a8328: 8fb900bc */ lw $t9,0xbc($sp)
|
||||
|
|
@ -28588,10 +28588,10 @@ void func0f0a8404(struct coord *pos, s16 *rooms, s32 arg2)
|
|||
struct audiohandle **handle = func0f0a7d5c();
|
||||
|
||||
if (handle) {
|
||||
sndStart(var80095200, SFX_PUNCH_GLASS, handle, -1, -1, -1, -1, -1);
|
||||
sndStart(var80095200, SFX_HIT_GLASS, handle, -1, -1, -1, -1, -1);
|
||||
|
||||
if (*handle) {
|
||||
func0f09505c(*handle, pos, 400, 2500, 3000, rooms, SFX_PUNCH_GLASS, 0x7fff, 0);
|
||||
func0f09505c(*handle, pos, 400, 2500, 3000, rooms, SFX_HIT_GLASS, 0x7fff, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -28627,13 +28627,13 @@ glabel var7f1acaa0
|
|||
/* f0a8510: 3c0f800b */ lui $t7,%hi(g_Textures)
|
||||
/* f0a8514: 8defabc0 */ lw $t7,%lo(g_Textures)($t7)
|
||||
/* f0a8518: 0002c0c0 */ sll $t8,$v0,0x3
|
||||
/* f0a851c: 3c0c8008 */ lui $t4,%hi(somethings)
|
||||
/* f0a851c: 3c0c8008 */ lui $t4,%hi(g_SurfaceTypes)
|
||||
/* f0a8520: 01f8c821 */ addu $t9,$t7,$t8
|
||||
/* f0a8524: 8f290000 */ lw $t1,0x0($t9)
|
||||
/* f0a8528: 00095702 */ srl $t2,$t1,0x1c
|
||||
/* f0a852c: 000a5880 */ sll $t3,$t2,0x2
|
||||
/* f0a8530: 018b6021 */ addu $t4,$t4,$t3
|
||||
/* f0a8534: 8d8c4458 */ lw $t4,%lo(somethings)($t4)
|
||||
/* f0a8534: 8d8c4458 */ lw $t4,%lo(g_SurfaceTypes)($t4)
|
||||
/* f0a8538: 858d0008 */ lh $t5,0x8($t4)
|
||||
/* f0a853c: 11a000f0 */ beqz $t5,.L0f0a8900
|
||||
.L0f0a8540:
|
||||
|
|
@ -28831,14 +28831,14 @@ glabel var7f1acaa0
|
|||
/* f0a8810: 3c0f800b */ lui $t7,%hi(g_Textures)
|
||||
/* f0a8814: 8defabc0 */ lw $t7,%lo(g_Textures)($t7)
|
||||
/* f0a8818: 000370c0 */ sll $t6,$v1,0x3
|
||||
/* f0a881c: 3c028008 */ lui $v0,%hi(somethings)
|
||||
/* f0a881c: 3c028008 */ lui $v0,%hi(g_SurfaceTypes)
|
||||
/* f0a8820: 01eec021 */ addu $t8,$t7,$t6
|
||||
/* f0a8824: 8f0b0000 */ lw $t3,0x0($t8)
|
||||
/* f0a8828: 240affff */ addiu $t2,$zero,-1
|
||||
/* f0a882c: 000bcf02 */ srl $t9,$t3,0x1c
|
||||
/* f0a8830: 00194880 */ sll $t1,$t9,0x2
|
||||
/* f0a8834: 00491021 */ addu $v0,$v0,$t1
|
||||
/* f0a8838: 8c424458 */ lw $v0,%lo(somethings)($v0)
|
||||
/* f0a8838: 8c424458 */ lw $v0,%lo(g_SurfaceTypes)($v0)
|
||||
/* f0a883c: 84480008 */ lh $t0,0x8($v0)
|
||||
/* f0a8840: 59000030 */ blezl $t0,.L0f0a8904
|
||||
/* f0a8844: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
|
|
|
|||
|
|
@ -12,125 +12,139 @@ u32 var800ab5b4;
|
|||
struct var800ab5b8 var800ab5b8[8];
|
||||
struct var800ab718 var800ab718[8];
|
||||
|
||||
u32 var80084330 = 0x80878088;
|
||||
u32 var80084334 = 0x06000000;
|
||||
// Default
|
||||
u16 g_SurfaceTypeDefaultSounds[] = { SFX_HIT_STONE_8087, SFX_HIT_STONE_8088 };
|
||||
u8 var80084334[] = { 6 };
|
||||
|
||||
struct something something_2a358 = {
|
||||
&var80084330, &var80084334, 0x00020001,
|
||||
struct surfacetype g_SurfaceTypeDefault = {
|
||||
g_SurfaceTypeDefaultSounds, var80084334, 2, 1,
|
||||
};
|
||||
|
||||
u32 var80084344 = 0x80878088;
|
||||
u32 var80084348 = 0x01000000;
|
||||
// Stone
|
||||
u16 var80084344[] = { SFX_HIT_STONE_8087, SFX_HIT_STONE_8088 };
|
||||
u8 var80084348[] = { 1 };
|
||||
|
||||
struct something something_2a36c = {
|
||||
&var80084344, &var80084348, 0x00020001,
|
||||
struct surfacetype g_SurfaceTypeStone = {
|
||||
var80084344, var80084348, 2, 1,
|
||||
};
|
||||
|
||||
u32 var80084358 = 0x807e807f;
|
||||
u32 var8008435c = 0x10000000;
|
||||
// Wood
|
||||
u16 g_SurfaceTypeWoodSounds[] = { SFX_HIT_WOOD_807E, SFX_HIT_WOOD_807F };
|
||||
u8 var8008435c[] = { 0x10 };
|
||||
|
||||
struct something something_2a380 = {
|
||||
&var80084358, &var8008435c, 0x00020001,
|
||||
struct surfacetype g_SurfaceTypeWood = {
|
||||
g_SurfaceTypeWoodSounds, var8008435c, 2, 1,
|
||||
};
|
||||
|
||||
u32 var8008436c = 0x8079807b;
|
||||
u32 var80084370 = 0x11000000;
|
||||
// Metal
|
||||
u16 g_SurfaceTypeMetalSounds[] = { SFX_HIT_METAL_8079, SFX_HIT_METAL_807B };
|
||||
u8 var80084370[] = { 0x11 };
|
||||
|
||||
struct something something_2a394 = {
|
||||
&var8008436c, &var80084370, 0x00020001,
|
||||
struct surfacetype g_SurfaceTypeMetal = {
|
||||
g_SurfaceTypeMetalSounds, var80084370, 2, 1,
|
||||
};
|
||||
|
||||
u32 var80084380 = 0x80770000;
|
||||
u32 var80084384 = 0x03040500;
|
||||
// Glass
|
||||
u16 g_SurfaceTypeGlassSounds[] = { SFX_HIT_GLASS };
|
||||
u8 var80084384[] = { 3, 4, 5 };
|
||||
|
||||
struct something something_2a3a8 = {
|
||||
&var80084380, &var80084384, 0x00010003,
|
||||
struct surfacetype g_SurfaceTypeGlass = {
|
||||
g_SurfaceTypeGlassSounds, var80084384, 1, 3,
|
||||
};
|
||||
|
||||
u32 var80084394 = 0x807d0000;
|
||||
u32 var80084398 = 0x01000000;
|
||||
// Snow
|
||||
u16 g_SurfaceTypeSnowSounds[] = { SFX_HIT_SNOW };
|
||||
u8 var80084398[] = { 1 };
|
||||
|
||||
struct something something_2a3bc = {
|
||||
&var80084394, &var80084398, 0x00010001,
|
||||
struct surfacetype g_SurfaceTypeSnow = {
|
||||
g_SurfaceTypeSnowSounds, var80084398, 1, 1,
|
||||
};
|
||||
|
||||
u32 var800843a8 = 0x80848085;
|
||||
u32 var800843ac = 0x02000000;
|
||||
// Dirt
|
||||
u16 g_SurfaceTypeDirtSounds[] = { SFX_HIT_DIRT_8084, SFX_HIT_DIRT_8085 };
|
||||
u8 var800843ac[] = { 2 };
|
||||
|
||||
struct something something_2a3d0 = {
|
||||
&var800843a8, &var800843ac, 0x00020001,
|
||||
struct surfacetype g_SurfaceTypeDirt = {
|
||||
g_SurfaceTypeDirtSounds, var800843ac, 2, 1,
|
||||
};
|
||||
|
||||
u32 var800843bc = 0x80818082;
|
||||
u32 var800843c0 = 0x80830000;
|
||||
u32 var800843c4 = 0x02000000;
|
||||
// Mud
|
||||
u16 g_SurfaceTypeMudSounds[] = { SFX_HIT_MUD_8081, SFX_HIT_MUD_8082, SFX_HIT_MUD_8083 };
|
||||
u8 var800843c4[] = { 2 };
|
||||
|
||||
struct something something_2a3e8 = {
|
||||
&var800843bc, &var800843c4, 0x00030001,
|
||||
struct surfacetype g_SurfaceTypeMud = {
|
||||
g_SurfaceTypeMudSounds, var800843c4, 3, 1,
|
||||
};
|
||||
|
||||
u32 var800843d4 = 0x80860000;
|
||||
u32 var800843d8 = 0x01000000;
|
||||
// Tile
|
||||
u16 g_SurfaceTypeTileSounds[] = { SFX_HIT_TILE };
|
||||
u8 var800843d8[] = { 1 };
|
||||
|
||||
struct something something_2a3fc = {
|
||||
&var800843d4, &var800843d8, 0x00010001,
|
||||
struct surfacetype g_SurfaceTypeTile = {
|
||||
g_SurfaceTypeTileSounds, var800843d8, 1, 1,
|
||||
};
|
||||
|
||||
u32 var800843e8 = 0x8089808a;
|
||||
u32 var800843ec = 0x01060000;
|
||||
// Metal obj
|
||||
u16 g_SurfaceTypeMetalObjSounds[] = { SFX_HIT_METALOBJ_8089, SFX_HIT_METALOBJ_808A };
|
||||
u8 var800843ec[] = { 1, 6 };
|
||||
|
||||
struct something something_2a410 = {
|
||||
&var800843e8, &var800843ec, 0x00020002,
|
||||
struct surfacetype g_SurfaceTypeMetalObj = {
|
||||
g_SurfaceTypeMetalObjSounds, var800843ec, 2, 2,
|
||||
};
|
||||
|
||||
u32 var800843fc = 0x80760000;
|
||||
u32 var80084400 = 0x02000000;
|
||||
// Chr
|
||||
u16 g_SurfaceTypeChrSounds[] = { SFX_HIT_CHR };
|
||||
u8 var80084400[] = { 2 };
|
||||
|
||||
struct something something_2a424 = {
|
||||
&var800843fc, &var80084400, 0x00010001,
|
||||
struct surfacetype g_SurfaceTypeChr = {
|
||||
g_SurfaceTypeChrSounds, var80084400, 1, 1,
|
||||
};
|
||||
|
||||
u32 var80084410 = 0x80770000;
|
||||
u32 var80084414 = 0x03040500;
|
||||
// Glass XLU
|
||||
u16 g_SurfaceTypeGlassXluSounds[] = { SFX_HIT_GLASS };
|
||||
u8 var80084414[] = { 3, 4, 5 };
|
||||
|
||||
struct something something_2a438 = {
|
||||
&var80084410, &var80084414, 0x00010003,
|
||||
struct surfacetype g_SurfaceTypeGlassXlu = {
|
||||
g_SurfaceTypeGlassXluSounds, var80084414, 1, 3,
|
||||
};
|
||||
|
||||
struct something something_2a444 = {
|
||||
NULL, NULL, 0x00000000,
|
||||
// None
|
||||
struct surfacetype g_SurfaceTypeNone = {
|
||||
NULL, NULL, 0, 0,
|
||||
};
|
||||
|
||||
u32 var80084430 = 0x80800000;
|
||||
u32 var80084434 = 0x00000000;
|
||||
// Shallow water
|
||||
u16 g_SurfaceTypeShallowWaterSounds[] = { SFX_HIT_WATER };
|
||||
u8 var80084434[] = { 0 };
|
||||
|
||||
struct something something_2a458 = {
|
||||
&var80084430, &var80084434, 0x00010001,
|
||||
struct surfacetype g_SurfaceTypeShallowWater = {
|
||||
g_SurfaceTypeShallowWaterSounds, var80084434, 1, 1,
|
||||
};
|
||||
|
||||
u32 var80084444 = 0x80800000;
|
||||
u32 var80084448 = 0x00000000;
|
||||
// Deep water
|
||||
u16 g_SurfaceTypeDeepWaterSounds[] = { SFX_HIT_WATER };
|
||||
u8 var80084448[] = { 0 };
|
||||
|
||||
struct something something_2a46c = {
|
||||
&var80084444, &var80084448, 0x00010001,
|
||||
struct surfacetype g_SurfaceTypeDeepWater = {
|
||||
g_SurfaceTypeDeepWaterSounds, var80084448, 1, 1,
|
||||
};
|
||||
|
||||
struct something *somethings[] = {
|
||||
/* 0*/ &something_2a358,
|
||||
/* 1*/ &something_2a36c,
|
||||
/* 2*/ &something_2a380,
|
||||
/* 3*/ &something_2a394,
|
||||
/* 4*/ &something_2a3a8,
|
||||
/* 5*/ &something_2a458,
|
||||
/* 6*/ &something_2a3bc,
|
||||
/* 7*/ &something_2a3d0,
|
||||
/* 8*/ &something_2a3e8,
|
||||
/* 9*/ &something_2a3fc,
|
||||
/*10*/ &something_2a410,
|
||||
/*11*/ &something_2a424,
|
||||
/*12*/ &something_2a438,
|
||||
/*13*/ &something_2a444,
|
||||
/*14*/ &something_2a46c,
|
||||
struct surfacetype *g_SurfaceTypes[] = {
|
||||
/* 0*/ &g_SurfaceTypeDefault,
|
||||
/* 1*/ &g_SurfaceTypeStone,
|
||||
/* 2*/ &g_SurfaceTypeWood,
|
||||
/* 3*/ &g_SurfaceTypeMetal,
|
||||
/* 4*/ &g_SurfaceTypeGlass,
|
||||
/* 5*/ &g_SurfaceTypeShallowWater,
|
||||
/* 6*/ &g_SurfaceTypeSnow,
|
||||
/* 7*/ &g_SurfaceTypeDirt,
|
||||
/* 8*/ &g_SurfaceTypeMud,
|
||||
/* 9*/ &g_SurfaceTypeTile,
|
||||
/*10*/ &g_SurfaceTypeMetalObj,
|
||||
/*11*/ &g_SurfaceTypeChr,
|
||||
/*12*/ &g_SurfaceTypeGlassXlu,
|
||||
/*13*/ &g_SurfaceTypeNone,
|
||||
/*14*/ &g_SurfaceTypeDeepWater,
|
||||
};
|
||||
|
||||
char *var80084494[] = {
|
||||
|
|
|
|||
1592
src/game/prop.c
1592
src/game/prop.c
File diff suppressed because it is too large
Load Diff
|
|
@ -45652,7 +45652,7 @@ glabel var7f1aa6e0
|
|||
// -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
||||
//
|
||||
// // Create sparks
|
||||
// sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, 0);
|
||||
// sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, SPARKTYPE_00);
|
||||
// }
|
||||
// } else {
|
||||
// // 3e8
|
||||
|
|
@ -58359,25 +58359,25 @@ glabel func0f085eac
|
|||
/* f0863f8: 14200004 */ bnez $at,.L0f08640c
|
||||
/* f0863fc: 3c0f800b */ lui $t7,%hi(g_Textures)
|
||||
.L0f086400:
|
||||
/* f086400: 3c068008 */ lui $a2,%hi(somethings)
|
||||
/* f086400: 3c068008 */ lui $a2,%hi(g_SurfaceTypes)
|
||||
/* f086404: 1000000f */ b .L0f086444
|
||||
/* f086408: 8cc64458 */ lw $a2,%lo(somethings)($a2)
|
||||
/* f086408: 8cc64458 */ lw $a2,%lo(g_SurfaceTypes)($a2)
|
||||
.L0f08640c:
|
||||
/* f08640c: 8defabc0 */ lw $t7,%lo(g_Textures)($t7)
|
||||
/* f086410: 0003c8c0 */ sll $t9,$v1,0x3
|
||||
/* f086414: 3c068008 */ lui $a2,%hi(somethings)
|
||||
/* f086414: 3c068008 */ lui $a2,%hi(g_SurfaceTypes)
|
||||
/* f086418: 01f95821 */ addu $t3,$t7,$t9
|
||||
/* f08641c: 91620000 */ lbu $v0,0x0($t3)
|
||||
/* f086420: 3058000f */ andi $t8,$v0,0xf
|
||||
/* f086424: 2f01000f */ sltiu $at,$t8,0xf
|
||||
/* f086428: 10200005 */ beqz $at,.L0f086440
|
||||
/* f08642c: 00186080 */ sll $t4,$t8,0x2
|
||||
/* f086430: 3c068008 */ lui $a2,%hi(somethings)
|
||||
/* f086430: 3c068008 */ lui $a2,%hi(g_SurfaceTypes)
|
||||
/* f086434: 00cc3021 */ addu $a2,$a2,$t4
|
||||
/* f086438: 10000002 */ b .L0f086444
|
||||
/* f08643c: 8cc64458 */ lw $a2,%lo(somethings)($a2)
|
||||
/* f08643c: 8cc64458 */ lw $a2,%lo(g_SurfaceTypes)($a2)
|
||||
.L0f086440:
|
||||
/* f086440: 8cc64458 */ lw $a2,%lo(somethings)($a2)
|
||||
/* f086440: 8cc64458 */ lw $a2,%lo(g_SurfaceTypes)($a2)
|
||||
.L0f086444:
|
||||
/* f086444: 84cd000a */ lh $t5,0xa($a2)
|
||||
/* f086448: 19a0005f */ blez $t5,.L0f0865c8
|
||||
|
|
|
|||
|
|
@ -506,8 +506,8 @@ glabel var7f1b6030
|
|||
/* f1496dc: 8c640000 */ lw $a0,0x0($v1)
|
||||
.L0f1496e0:
|
||||
/* f1496e0: 3c06800b */ lui $a2,%hi(g_Textures)
|
||||
/* f1496e4: 3c058008 */ lui $a1,%hi(somethings)
|
||||
/* f1496e8: 24a54458 */ addiu $a1,$a1,%lo(somethings)
|
||||
/* f1496e4: 3c058008 */ lui $a1,%hi(g_SurfaceTypes)
|
||||
/* f1496e8: 24a54458 */ addiu $a1,$a1,%lo(g_SurfaceTypes)
|
||||
/* f1496ec: 24c6abc0 */ addiu $a2,$a2,%lo(g_Textures)
|
||||
/* f1496f0: 27a200a0 */ addiu $v0,$sp,0xa0
|
||||
/* f1496f4: 27a704b0 */ addiu $a3,$sp,0x4b0
|
||||
|
|
|
|||
|
|
@ -779,6 +779,7 @@
|
|||
#define DROPREASON_6 6
|
||||
|
||||
#define EXPLOSIONTYPE_0 0
|
||||
#define EXPLOSIONTYPE_1 1
|
||||
#define EXPLOSIONTYPE_2 2
|
||||
#define EXPLOSIONTYPE_3 3
|
||||
#define EXPLOSIONTYPE_5 5
|
||||
|
|
@ -788,6 +789,7 @@
|
|||
#define EXPLOSIONTYPE_13 13
|
||||
#define EXPLOSIONTYPE_14 14
|
||||
#define EXPLOSIONTYPE_18 18
|
||||
#define EXPLOSIONTYPE_22 22
|
||||
#define EXPLOSIONTYPE_23 23
|
||||
#define EXPLOSIONTYPE_25 25
|
||||
|
||||
|
|
@ -3469,6 +3471,20 @@
|
|||
#define SOUNDMODE_HEADPHONE 2
|
||||
#define SOUNDMODE_SURROUND 3
|
||||
|
||||
#define SPARKTYPE_00 0x00
|
||||
#define SPARKTYPE_01 0x01
|
||||
#define SPARKTYPE_02 0x02
|
||||
#define SPARKTYPE_03 0x03
|
||||
#define SPARKTYPE_04 0x04
|
||||
#define SPARKTYPE_09 0x09
|
||||
#define SPARKTYPE_0A 0x0a
|
||||
#define SPARKTYPE_0B 0x0b
|
||||
#define SPARKTYPE_0F 0x0f
|
||||
#define SPARKTYPE_16 0x16
|
||||
#define SPARKTYPE_17 0x17
|
||||
#define SPARKTYPE_18 0x18
|
||||
#define SPARKTYPE_19 0x19
|
||||
|
||||
#define SPAWNFLAG_FORCESUNGLASSES 0x00000001 // 100% chance of wearing sunglasses if head model supports it
|
||||
#define SPAWNFLAG_MAYBESUNGLASSES 0x00000002 // 50% chance of wearing sunglasses if head model supports it
|
||||
#define SPAWNFLAG_INVINCIBLE 0x00000008
|
||||
|
|
@ -3677,6 +3693,22 @@
|
|||
#define STAGEINDEX_TEST_MP19 0x3b
|
||||
#define STAGEINDEX_TEST_MP20 0x3c
|
||||
|
||||
#define SURFACETYPE_DEFAULT 0
|
||||
#define SURFACETYPE_STONE 1
|
||||
#define SURFACETYPE_WOOD 2
|
||||
#define SURFACETYPE_METAL 3
|
||||
#define SURFACETYPE_GLASS 4
|
||||
#define SURFACETYPE_SHALLOWWATER 5
|
||||
#define SURFACETYPE_SNOW 6
|
||||
#define SURFACETYPE_DIRT 7
|
||||
#define SURFACETYPE_MUD 8
|
||||
#define SURFACETYPE_TILE 9
|
||||
#define SURFACETYPE_METALOBJ 10
|
||||
#define SURFACETYPE_CHR 11
|
||||
#define SURFACETYPE_GLASSXLU 12
|
||||
#define SURFACETYPE_NONE 13
|
||||
#define SURFACETYPE_DEEPWATER 14
|
||||
|
||||
#define TEAM_00 0x00
|
||||
#define TEAM_01 0x01
|
||||
#define TEAM_ENEMY 0x02
|
||||
|
|
|
|||
|
|
@ -487,7 +487,7 @@ extern bool g_Jpn;
|
|||
#if VERSION >= VERSION_PAL_FINAL
|
||||
extern s32 g_LanguageId;
|
||||
#endif
|
||||
extern struct something *somethings[];
|
||||
extern struct surfacetype *g_SurfaceTypes[15];
|
||||
extern void *var800844f0;
|
||||
extern f32 var800845d4;
|
||||
extern u32 var800845dc;
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ u32 func0f15f560(void);
|
|||
u32 func0f15ffdc(void);
|
||||
u32 func0f160a38(void);
|
||||
u32 func0f1612e4(void);
|
||||
u32 func0f161520(void);
|
||||
bool func0f161520(struct coord *arg0, struct coord *arg1, s16 room, struct coord *arg3);
|
||||
s32 func0f161ab4(s32 room);
|
||||
bool roomContainsCoord(struct coord *pos, s16 roomnum);
|
||||
bool func0f161c08(struct coord *arg0, s16 roomnum);
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ u32 func0f0260c4(void);
|
|||
u32 func0f0268bc(void);
|
||||
u32 func0f0270f4(void);
|
||||
f32 func0f0278a4(struct chrdata *chr);
|
||||
u32 func0f027994(void);
|
||||
u32 func0f027e1c(void);
|
||||
void func0f027994(struct prop *prop, struct shotdata *shotdata, bool arg2, bool arg3);
|
||||
void func0f027e1c(struct shotdata *shotdata, struct hit *hit);
|
||||
void func0f028498(bool value);
|
||||
void func0f028590(f32 arg0);
|
||||
bool func0f028a50(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ void roomSetDefaults(struct room *room);
|
|||
Gfx *func0f001138(Gfx *gdl, s16 roomnum);
|
||||
Gfx *func0f001300(Gfx *gdl);
|
||||
void roomInitLights(s32 roomnum);
|
||||
u32 func0f001734(void);
|
||||
s32 func0f001734(struct coord *arg0, struct coord *arg1, s32 roomnum);
|
||||
void roomSetLightsFaulty(s32 roomnum, s32 chance);
|
||||
void roomSetLightBroken(s32 roomnum, s32 lightnum);
|
||||
void func0f001bdc(void);
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ void func0f0a7138(Gfx **gdl);
|
|||
struct audiohandle **func0f0a7d5c(void);
|
||||
void gsetPlayPropHitSound(struct gset *gset, struct prop *prop, s32 arg2);
|
||||
void func0f0a8404(struct coord *pos, s16 *rooms, s32 arg2);
|
||||
u32 func0f0a84c8(void);
|
||||
void func0f0a84c8(struct gset *gset, struct coord *arg1, s16 arg2, s16 *arg3);
|
||||
void handSetTriggerOn(s32 handnum, bool on);
|
||||
s32 currentPlayerConsiderToggleGunFunction(s32 usedowntime, bool firing, s32 arg2);
|
||||
void func0f0a8c50(void);
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ void propDetach(struct prop *prop);
|
|||
Gfx *propRender(Gfx *gdl, struct prop *prop, bool withalpha);
|
||||
Gfx *propsRender(Gfx *gdl, s16 arg1, s32 arg2, s16 *arg3);
|
||||
void weaponPlayWhooshSound(s32 weaponnum, struct prop *prop);
|
||||
void func0f060bac(s32 arg0, struct prop *prop);
|
||||
void func0f060db8(s32 handnum, bool arg1, struct coord *arg2, struct coord *arg3, struct coord *arg4, struct coord *arg5, u32 arg6, f32 arg7, bool arg8);
|
||||
void func0f060bac(s32 weaponnum, struct prop *prop);
|
||||
struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struct coord *arg3, struct coord *gunpos, struct coord *dir, u32 arg6, f32 arg7, bool arg8);
|
||||
struct prop *func0f061d54(s32 handnum, u32 arg1, u32 arg2);
|
||||
void handCreateBulletRaycast(s32 handnum, bool arg1, bool dorandom, s32 arg3, bool arg4);
|
||||
u32 func0f061fa8(void);
|
||||
|
|
|
|||
|
|
@ -236,8 +236,8 @@ bool func0f0851ec(struct defaultobj *obj);
|
|||
void objTakeGunfire(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weaponnum, s32 playernum);
|
||||
void objDamage(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weaponnum, s32 playernum);
|
||||
u32 func0f0859a0(void);
|
||||
u32 func0f085e00(void);
|
||||
u32 func0f085eac(void);
|
||||
void func0f085e00(struct prop *prop, struct shotdata *shotdata);
|
||||
void func0f085eac(struct shotdata *shotdata, struct hit *hit);
|
||||
u32 propobjGetCiTagId(struct prop *prop);
|
||||
bool objIsHealthy(struct defaultobj *obj);
|
||||
bool objTestForInteract(struct prop *prop);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
u32 func0f12f6c0(void);
|
||||
void sparkgroupEnsureFreeSparkSlot(struct sparkgroup *group);
|
||||
void sparksCreate(s32 room, struct prop *prop, struct coord *pos, struct coord *arg3, struct coord *dir, s32 arg5);
|
||||
void sparksCreate(s32 room, struct prop *prop, struct coord *pos, struct coord *arg3, struct coord *dir, s32 type);
|
||||
Gfx *sparksRender(Gfx *gdl);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ void func0f13e640(struct var800a41b0 *thing, u32 arg1);
|
|||
u32 func0f13e744(void);
|
||||
u32 func0f13e994(void);
|
||||
void func0f13eb44(void);
|
||||
u32 func0f13f3f4(void);
|
||||
void func0f13f3f4(struct coord *arg0, struct coord *arg1, struct coord *arg2, u32 arg3, u32 arg4, u32 arg5, s32 room, u32 arg7, s32 arg8, u32 arg9, struct chrdata *chr, bool arg11);
|
||||
u32 func0f13f504(void);
|
||||
s32 func0f140750(struct coord *coord);
|
||||
u32 func0f1408a8(void);
|
||||
|
|
|
|||
|
|
@ -1667,27 +1667,27 @@ enum sfx {
|
|||
SFX_8073,
|
||||
SFX_8074,
|
||||
SFX_8075,
|
||||
SFX_8076,
|
||||
SFX_PUNCH_GLASS,
|
||||
SFX_HIT_CHR,
|
||||
SFX_HIT_GLASS,
|
||||
SFX_GLASS_SHATTER,
|
||||
SFX_HATHIT_8079,
|
||||
SFX_HIT_METAL_8079,
|
||||
SFX_807A,
|
||||
SFX_HATHIT_807B,
|
||||
SFX_HIT_METAL_807B,
|
||||
SFX_HATHIT_807C,
|
||||
SFX_807D,
|
||||
SFX_807E,
|
||||
SFX_807F,
|
||||
SFX_FIREEMPTY_MAIAN,
|
||||
SFX_8081,
|
||||
SFX_8082,
|
||||
SFX_8083,
|
||||
SFX_8084,
|
||||
SFX_8085,
|
||||
SFX_8086,
|
||||
SFX_8087,
|
||||
SFX_8088,
|
||||
SFX_8089,
|
||||
SFX_808A,
|
||||
SFX_HIT_SNOW,
|
||||
SFX_HIT_WOOD_807E,
|
||||
SFX_HIT_WOOD_807F,
|
||||
SFX_HIT_WATER,
|
||||
SFX_HIT_MUD_8081,
|
||||
SFX_HIT_MUD_8082,
|
||||
SFX_HIT_MUD_8083,
|
||||
SFX_HIT_DIRT_8084,
|
||||
SFX_HIT_DIRT_8085,
|
||||
SFX_HIT_TILE,
|
||||
SFX_HIT_STONE_8087,
|
||||
SFX_HIT_STONE_8088,
|
||||
SFX_HIT_METALOBJ_8089,
|
||||
SFX_HIT_METALOBJ_808A,
|
||||
SFX_808B,
|
||||
SFX_808C,
|
||||
SFX_THUD_808D,
|
||||
|
|
|
|||
|
|
@ -3500,10 +3500,11 @@ struct twowords {
|
|||
u32 unk04;
|
||||
};
|
||||
|
||||
struct something {
|
||||
u32 *unk00;
|
||||
u32 *unk04;
|
||||
u32 unk08;
|
||||
struct surfacetype {
|
||||
u16 *sounds;
|
||||
u8 *unk04;
|
||||
s16 numsounds;
|
||||
s16 num04;
|
||||
};
|
||||
|
||||
union soundnumhack {
|
||||
|
|
@ -5788,10 +5789,11 @@ struct weatherparticledata {
|
|||
};
|
||||
|
||||
struct texture {
|
||||
u8 unk00;
|
||||
u8 unk00_00 : 4;
|
||||
u8 surfacetype : 4;
|
||||
u8 unk01;
|
||||
u16 dataoffset;
|
||||
u32 unk08;
|
||||
u32 unk04;
|
||||
};
|
||||
|
||||
struct var800aabb8 {
|
||||
|
|
@ -7039,4 +7041,54 @@ struct var8009ddec {
|
|||
/*0x18*/ s32 pad;
|
||||
};
|
||||
|
||||
struct hitthing {
|
||||
struct coord unk00;
|
||||
struct coord unk0c;
|
||||
u32 unk18;
|
||||
u32 unk1c;
|
||||
u32 unk20;
|
||||
u32 unk24;
|
||||
s16 unk28;
|
||||
s16 unk2a;
|
||||
s16 unk2c;
|
||||
s16 unk2e;
|
||||
};
|
||||
|
||||
struct hit {
|
||||
/*0x00*/ f32 distance;
|
||||
/*0x04*/ struct prop *prop;
|
||||
/*0x08*/ u32 unk08;
|
||||
/*0x0c*/ u32 unk0c;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
/*0x18*/ u32 unk18;
|
||||
/*0x1c*/ u32 unk1c;
|
||||
/*0x20*/ u32 unk20;
|
||||
/*0x24*/ u32 unk24;
|
||||
/*0x28*/ u32 unk28;
|
||||
/*0x2c*/ u32 unk2c;
|
||||
/*0x30*/ u32 unk30;
|
||||
/*0x34*/ u32 unk34;
|
||||
/*0x38*/ u32 unk38;
|
||||
/*0x3c*/ u32 unk3c;
|
||||
/*0x40*/ u32 unk40;
|
||||
/*0x44*/ u32 unk44;
|
||||
/*0x48*/ u32 unk48;
|
||||
/*0x4c*/ s8 unk4c;
|
||||
/*0x4d*/ s8 unk4d;
|
||||
/*0x50*/ struct coord pos;
|
||||
/*0x5c*/ struct coord dir;
|
||||
};
|
||||
|
||||
struct shotdata {
|
||||
/*0x00*/ struct coord unk00;
|
||||
/*0x0c*/ struct coord unk0c;
|
||||
/*0x18*/ struct gset gset;
|
||||
/*0x1c*/ struct coord gunpos;
|
||||
/*0x28*/ struct coord dir;
|
||||
/*0x34*/ f32 unk34;
|
||||
/*0x38*/ s32 unk38;
|
||||
/*0x3c*/ struct hit hits[10];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue