Attempt to decompile nbombInflictDamage
This commit is contained in:
parent
73e610ea43
commit
21ab803fed
|
|
@ -2784,7 +2784,7 @@ u8 func0415_radioactivity[] = {
|
|||
add_motion_blur(CHR_TARGET, 10, TRUE)
|
||||
if_timer_lt(300, /*goto*/ 0x2f)
|
||||
restart_timer
|
||||
damage_player(CHR_TARGET, 4, 0)
|
||||
poison_chr(CHR_TARGET, 4, 0)
|
||||
label(0x2f)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0014, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0015, /*goto*/ 0x06)
|
||||
|
|
|
|||
|
|
@ -660,7 +660,7 @@ u8 func0401_gas_damage[] = {
|
|||
label(0x32)
|
||||
if_timer_lt(460, /*goto*/ 0x32)
|
||||
restart_timer
|
||||
damage_player(CHR_TARGET, 2, 2)
|
||||
poison_chr(CHR_TARGET, 2, 2)
|
||||
label(0x32)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x009a, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0099, /*goto*/ 0x06)
|
||||
|
|
|
|||
|
|
@ -4361,7 +4361,7 @@ glabel var7f1a87b8
|
|||
/* f022ed4: 3c0542c8 */ lui $a1,0x42c8
|
||||
/* f022ed8: 27a60034 */ addiu $a2,$sp,0x34
|
||||
/* f022edc: 27a70030 */ addiu $a3,$sp,0x30
|
||||
/* f022ee0: 0fc0d049 */ jal func0f034124
|
||||
/* f022ee0: 0fc0d049 */ jal chrPoison
|
||||
/* f022ee4: afa80010 */ sw $t0,0x10($sp)
|
||||
/* f022ee8: 3c054049 */ lui $a1,0x4049
|
||||
/* f022eec: 34a50fdb */ ori $a1,$a1,0xfdb
|
||||
|
|
@ -4426,7 +4426,7 @@ glabel var7f1a87b8
|
|||
/* f022fb8: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* f022fbc: 8e0800e8 */ lw $t0,0xe8($s0)
|
||||
/* f022fc0: 27a70030 */ addiu $a3,$sp,0x30
|
||||
/* f022fc4: 0fc0d049 */ jal func0f034124
|
||||
/* f022fc4: 0fc0d049 */ jal chrPoison
|
||||
/* f022fc8: afa80010 */ sw $t0,0x10($sp)
|
||||
.L0f022fcc:
|
||||
/* f022fcc: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
|
|
|
|||
|
|
@ -5398,7 +5398,7 @@ glabel func0f034080
|
|||
/* f034120: 00000000 */ nop
|
||||
);
|
||||
|
||||
void func0f034124(struct chrdata *chr, f32 arg1, struct coord *vector, u8 *arg3, struct prop *prop)
|
||||
void chrPoison(struct chrdata *chr, f32 arg1, struct coord *vector, u8 *arg3, struct prop *prop)
|
||||
{
|
||||
func0f034524(chr, arg1, vector, arg3, prop, 200, 0, 0, 0, 0, -1, 0, 0, 0);
|
||||
}
|
||||
|
|
@ -22564,7 +22564,7 @@ void chrTickGoPos(struct chrdata *chr)
|
|||
// Try and warp the chr past whatever obstacle is blocking them?
|
||||
struct coord sp196 = {0, 0, 0};
|
||||
|
||||
func0f034124(chr, 1, &sp196, NULL, NULL);
|
||||
chrPoison(chr, 1, &sp196, NULL, NULL);
|
||||
|
||||
chr->lastmoveok60 = g_Vars.lvframe60;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -383,7 +383,7 @@ bool (*g_CommandPointers[])(void) = {
|
|||
/*0x016b*/ ai016b,
|
||||
/*0x016c*/ aiNoOp016c,
|
||||
/*0x016d*/ aiChrAdjustMotionBlur,
|
||||
/*0x016e*/ aiDamagePlayer,
|
||||
/*0x016e*/ aiPoisonChr,
|
||||
/*0x016f*/ aiIfChrHasGun,
|
||||
/*0x0170*/ aiDoGunCommand,
|
||||
/*0x0171*/ aiIfDistanceToGunLessThan,
|
||||
|
|
@ -708,7 +708,7 @@ void chraiExecute(void *entity, s32 proptype)
|
|||
}
|
||||
|
||||
// Check if the ailist should be switched to a different one
|
||||
if (g_Vars.chrdata && (g_Vars.chrdata->chrflags & CHRCFLAG_00200000)) {
|
||||
if (g_Vars.chrdata && (g_Vars.chrdata->chrflags & CHRCFLAG_TRIGGERSHOTLIST)) {
|
||||
u32 animnum = modelGetAnimNum(g_Vars.chrdata->model);
|
||||
if (g_Vars.chrdata->aishotlist >= 0
|
||||
&& g_Vars.chrdata->cshield <= 0
|
||||
|
|
@ -717,7 +717,7 @@ void chraiExecute(void *entity, s32 proptype)
|
|||
&& animnum != ANIM_SNIPING_026B
|
||||
&& animnum != ANIM_SNIPING_026A) {
|
||||
// Set shot list
|
||||
g_Vars.chrdata->chrflags &= ~CHRCFLAG_00200000;
|
||||
g_Vars.chrdata->chrflags &= ~CHRCFLAG_TRIGGERSHOTLIST;
|
||||
g_Vars.ailist = ailistFindById(g_Vars.chrdata->aishotlist);
|
||||
g_Vars.aioffset = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5894,8 +5894,8 @@ bool ai00fd(void)
|
|||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]);
|
||||
|
||||
if (chr && (chr->chrflags & CHRCFLAG_00200000)) {
|
||||
chr->chrflags &= ~CHRCFLAG_00200000;
|
||||
if (chr && (chr->chrflags & CHRCFLAG_TRIGGERSHOTLIST)) {
|
||||
chr->chrflags &= ~CHRCFLAG_TRIGGERSHOTLIST;
|
||||
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
|
||||
} else {
|
||||
g_Vars.aioffset += 4;
|
||||
|
|
@ -9047,7 +9047,7 @@ bool aiChrAdjustMotionBlur(void)
|
|||
/**
|
||||
* @cmd 016e
|
||||
*/
|
||||
bool aiDamagePlayer(void)
|
||||
bool aiPoisonChr(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct coord coord = {0, 0, 0};
|
||||
|
|
@ -9055,12 +9055,12 @@ bool aiDamagePlayer(void)
|
|||
|
||||
if (chr && chr->prop) {
|
||||
if (cmd[4] == 2) {
|
||||
u8 sp40[] = {0x1a, 0, 0, 3};
|
||||
func0f034124(chr, (s32)cmd[3] * 0.03125f, &coord, sp40, NULL);
|
||||
u8 sp40[] = {WEAPON_COMBATKNIFE, 0, 0, 3};
|
||||
chrPoison(chr, (s32)cmd[3] * 0.03125f, &coord, sp40, NULL);
|
||||
} else if (cmd[4] == 0) {
|
||||
func0f034124(chr, (s32)cmd[3] * 0.03125f, &coord, NULL, NULL);
|
||||
chrPoison(chr, (s32)cmd[3] * 0.03125f, &coord, NULL, NULL);
|
||||
} else {
|
||||
func0f034124(chr, (s32)cmd[3] * -0.03125f, &coord, NULL, NULL);
|
||||
chrPoison(chr, (s32)cmd[3] * -0.03125f, &coord, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2175,7 +2175,7 @@ glabel func0f002ef8
|
|||
.L0f0032ec:
|
||||
/* f0032ec: 8fa400d8 */ lw $a0,0xd8($sp)
|
||||
/* f0032f0: 24050040 */ addiu $a1,$zero,0x40
|
||||
/* f0032f4: 0fc010e3 */ jal func0f00438c
|
||||
/* f0032f4: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f0032f8: 24060050 */ addiu $a2,$zero,0x50
|
||||
/* f0032fc: 0fc25480 */ jal func0f095200
|
||||
/* f003300: 00000000 */ nop
|
||||
|
|
@ -3132,7 +3132,7 @@ void func0f004314(void)
|
|||
func0f005bb0();
|
||||
|
||||
if (hand1->torchon || hand2->torchon) {
|
||||
func0f00438c(g_Vars.currentplayer->prop->rooms[0], 64, 80);
|
||||
roomAdjustLighting(g_Vars.currentplayer->prop->rooms[0], 64, 80);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3141,7 +3141,7 @@ void func0f004384(void)
|
|||
// empty
|
||||
}
|
||||
|
||||
void func0f00438c(s32 roomnum, s32 start, s32 limit)
|
||||
void roomAdjustLighting(s32 roomnum, s32 start, s32 limit)
|
||||
{
|
||||
if (var80061420 && !(g_Rooms[roomnum].flags & ROOMFLAG_OUTDOORS ? 1 : 0)) {
|
||||
s32 value;
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ glabel var7f1b5584
|
|||
/* f12a264: 240600ff */ addiu $a2,$zero,0xff
|
||||
/* f12a268: 4600310d */ trunc.w.s $f4,$f6
|
||||
/* f12a26c: 44052000 */ mfc1 $a1,$f4
|
||||
/* f12a270: 0fc010e3 */ jal func0f00438c
|
||||
/* f12a270: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f12a274: 00000000 */ nop
|
||||
/* f12a278: 86130002 */ lh $s3,0x2($s0)
|
||||
/* f12a27c: 26310001 */ addiu $s1,$s1,0x1
|
||||
|
|
@ -1514,7 +1514,7 @@ glabel var7f1b559c
|
|||
/* f12b24c: 240600ff */ addiu $a2,$zero,0xff
|
||||
/* f12b250: 4600320d */ trunc.w.s $f8,$f6
|
||||
/* f12b254: 44054000 */ mfc1 $a1,$f8
|
||||
/* f12b258: 0fc010e3 */ jal func0f00438c
|
||||
/* f12b258: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f12b25c: 00000000 */ nop
|
||||
.L0f12b260:
|
||||
/* f12b260: 86ce002a */ lh $t6,0x2a($s6)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include "game/game_005fd0.h"
|
||||
#include "game/game_006bd0.h"
|
||||
#include "game/chr/chr.h"
|
||||
#include "game/chr/chraction.h"
|
||||
#include "game/game_0601b0.h"
|
||||
#include "game/game_095320.h"
|
||||
#include "game/game_096750.h"
|
||||
|
|
@ -2859,12 +2860,6 @@ Gfx *nbombCreateGdl(void)
|
|||
}
|
||||
|
||||
struct audiohandle *g_NbombAudioHandle = NULL;
|
||||
u32 var800616e8 = 0x00000000;
|
||||
u32 var800616ec = 0x00000000;
|
||||
u32 var800616f0 = 0x00000000;
|
||||
u32 var800616f4 = 0x00000000;
|
||||
u32 var800616f8 = 0x00000000;
|
||||
u32 var800616fc = 0x00000000;
|
||||
|
||||
Gfx *nbombRender(Gfx *gdl, struct nbomb *nbomb, Gfx *subgdl)
|
||||
{
|
||||
|
|
@ -2927,7 +2922,7 @@ void func0f0099a4(void)
|
|||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0099e4
|
||||
glabel nbombInflictDamage
|
||||
.late_rodata
|
||||
glabel var7f1a7f20
|
||||
.word 0x3c23d70a
|
||||
|
|
@ -3033,7 +3028,7 @@ glabel var7f1a7f20
|
|||
/* f009b68: afa30040 */ sw $v1,0x40($sp)
|
||||
/* f009b6c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f009b70: 2405ffda */ addiu $a1,$zero,-38
|
||||
/* f009b74: 0fc010e3 */ jal func0f00438c
|
||||
/* f009b74: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f009b78: 2406ff4c */ addiu $a2,$zero,-180
|
||||
/* f009b7c: 8fa30040 */ lw $v1,0x40($sp)
|
||||
/* f009b80: 8ea402bc */ lw $a0,0x2bc($s5)
|
||||
|
|
@ -3116,7 +3111,7 @@ glabel var7f1a7f20
|
|||
/* f009ca0: 46049002 */ mul.s $f0,$f18,$f4
|
||||
/* f009ca4: afaa0010 */ sw $t2,0x10($sp)
|
||||
/* f009ca8: 44050000 */ mfc1 $a1,$f0
|
||||
/* f009cac: 0fc0d049 */ jal func0f034124
|
||||
/* f009cac: 0fc0d049 */ jal chrPoison
|
||||
/* f009cb0: 00000000 */ nop
|
||||
/* f009cb4: 8e0c0018 */ lw $t4,0x18($s0)
|
||||
/* f009cb8: 8e0e0014 */ lw $t6,0x14($s0)
|
||||
|
|
@ -3147,6 +3142,103 @@ glabel var7f1a7f20
|
|||
/* f009d0c: 27bd0308 */ addiu $sp,$sp,0x308
|
||||
);
|
||||
|
||||
// Mismatch: different usage of callee-save registers relating to room loop
|
||||
//void nbombInflictDamage(struct nbomb *nbomb)
|
||||
//{
|
||||
// s32 index = 0;
|
||||
// u32 stack;
|
||||
// s16 propnums[256]; // 100
|
||||
// struct coord bbmin; // f4
|
||||
// struct coord bbmax; // e8
|
||||
// s16 roomnums[54]; // 7c
|
||||
// s16 *propnumptr;
|
||||
// s32 i;
|
||||
// u8 sp70[4];
|
||||
// u32 stack2;
|
||||
//
|
||||
// sp70[0] = WEAPON_NBOMB;
|
||||
// sp70[3] = 0;
|
||||
//
|
||||
// if (g_Vars.lvupdate240 <= 0 || nbomb->age240 > 350) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// if (g_Rooms);
|
||||
//
|
||||
// // Find rooms which intersect the nbomb dome's bbox
|
||||
// bbmin.x = nbomb->pos.f[0] - nbomb->radius;
|
||||
// bbmin.y = nbomb->pos.f[1] - nbomb->radius;
|
||||
// bbmin.z = nbomb->pos.f[2] - nbomb->radius;
|
||||
//
|
||||
// bbmax.x = nbomb->pos.f[0] + nbomb->radius;
|
||||
// bbmax.y = nbomb->pos.f[1] + nbomb->radius;
|
||||
// bbmax.z = nbomb->pos.f[2] + nbomb->radius;
|
||||
//
|
||||
// if (g_Vars.roomcount);
|
||||
// if (g_Vars.roomcount);
|
||||
//
|
||||
// for (i = 1; i < g_Vars.roomcount; i++) {
|
||||
// if (!(bbmax.f[0] < g_Rooms[i].bbmin[0]
|
||||
// || bbmin.f[0] > g_Rooms[i].bbmax[0]
|
||||
// || bbmax.f[1] < g_Rooms[i].bbmin[1]
|
||||
// || bbmin.f[1] > g_Rooms[i].bbmax[1]
|
||||
// || bbmax.f[2] < g_Rooms[i].bbmin[2]
|
||||
// || bbmin.f[2] > g_Rooms[i].bbmax[2])
|
||||
// && index < 52) {
|
||||
// roomnums[index] = i;
|
||||
// index++;
|
||||
// roomAdjustLighting(i, -38, -180);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// roomnums[index] = -1;
|
||||
//
|
||||
// // Iterate props in the affected rooms and damage any chrs
|
||||
// roomGetProps(roomnums, propnums, 256);
|
||||
//
|
||||
// propnumptr = propnums;
|
||||
//
|
||||
// while (*propnumptr >= 0) {
|
||||
// struct prop *prop = &g_Vars.props[*propnumptr];
|
||||
//
|
||||
// if (prop->timetoregen == 0) {
|
||||
// if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
|
||||
// f32 xdiff = prop->pos.f[0] - nbomb->pos.f[0];
|
||||
// f32 ydiff = prop->pos.f[1] - nbomb->pos.f[1];
|
||||
// f32 zdiff = prop->pos.f[2] - nbomb->pos.f[2];
|
||||
//
|
||||
// f32 dist = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
||||
//
|
||||
// if (dist < nbomb->radius) {
|
||||
// struct chrdata *chr = prop->chr;
|
||||
//
|
||||
// if (chr) {
|
||||
// struct coord vector = {0, 0, 0};
|
||||
// f32 damage = 0.0099999997764826f * g_Vars.lvupdate240freal;
|
||||
//
|
||||
// chrPoison(chr, damage, &vector, sp70, nbomb->prop);
|
||||
//
|
||||
// chr->chrflags |= CHRCFLAG_TRIGGERSHOTLIST;
|
||||
//
|
||||
// if (chr->hidden & CHRHFLAG_CLOAKED) {
|
||||
// chrUncloak(chr, true);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// propnumptr++;
|
||||
// }
|
||||
//}
|
||||
|
||||
u32 var800616e8 = 0x00000000;
|
||||
u32 var800616ec = 0x00000000;
|
||||
u32 var800616f0 = 0x00000000;
|
||||
u32 var800616f4 = 0x00000000;
|
||||
u32 var800616f8 = 0x00000000;
|
||||
u32 var800616fc = 0x00000000;
|
||||
|
||||
void nbombTick(struct nbomb *nbomb)
|
||||
{
|
||||
if (nbomb->age240 >= 0) {
|
||||
|
|
@ -3171,7 +3263,7 @@ void nbombTick(struct nbomb *nbomb)
|
|||
|
||||
nbomb->radius *= 500.0f;
|
||||
|
||||
func0f0099e4(nbomb);
|
||||
nbombInflictDamage(nbomb);
|
||||
|
||||
age60 = nbomb->age240 / 4;
|
||||
|
||||
|
|
|
|||
|
|
@ -42385,7 +42385,7 @@ glabel func0f08bb5c
|
|||
/* f08bc34: 11c10004 */ beq $t6,$at,.L0f08bc48
|
||||
/* f08bc38: 01c02025 */ or $a0,$t6,$zero
|
||||
/* f08bc3c: 24050030 */ addiu $a1,$zero,0x30
|
||||
/* f08bc40: 0fc010e3 */ jal func0f00438c
|
||||
/* f08bc40: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f08bc44: 24060080 */ addiu $a2,$zero,0x80
|
||||
.L0f08bc48:
|
||||
/* f08bc48: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
|
|
@ -45267,7 +45267,7 @@ glabel func0f08ea50
|
|||
/* f08ed30: 02202025 */ or $a0,$s1,$zero
|
||||
.L0f08ed34:
|
||||
/* f08ed34: 24050080 */ addiu $a1,$zero,0x80
|
||||
/* f08ed38: 0fc010e3 */ jal func0f00438c
|
||||
/* f08ed38: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f08ed3c: 240600c8 */ addiu $a2,$zero,0xc8
|
||||
/* f08ed40: 8e690014 */ lw $t1,0x14($s3)
|
||||
/* f08ed44: 26100002 */ addiu $s0,$s0,0x2
|
||||
|
|
@ -46910,7 +46910,7 @@ glabel var7f1ab19c
|
|||
/* f0906bc: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
|
||||
/* f0906c0: 8df800bc */ lw $t8,0xbc($t7)
|
||||
/* f0906c4: 8f040004 */ lw $a0,0x4($t8)
|
||||
/* f0906c8: 0fc0d049 */ jal func0f034124
|
||||
/* f0906c8: 0fc0d049 */ jal chrPoison
|
||||
/* f0906cc: afa00010 */ sw $zero,0x10($sp)
|
||||
.L0f0906d0:
|
||||
/* f0906d0: 3c028007 */ lui $v0,%hi(var800698fc)
|
||||
|
|
|
|||
|
|
@ -663,7 +663,7 @@ glabel sparksCreate
|
|||
/* f12ffa8: 1000001f */ b .L0f130028
|
||||
/* f12ffac: 240e0001 */ addiu $t6,$zero,0x1
|
||||
.L0f12ffb0:
|
||||
/* f12ffb0: 0fc010e3 */ jal func0f00438c
|
||||
/* f12ffb0: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f12ffb4: 8e240010 */ lw $a0,0x10($s1)
|
||||
/* f12ffb8: 1000001b */ b .L0f130028
|
||||
/* f12ffbc: 240e0001 */ addiu $t6,$zero,0x1
|
||||
|
|
@ -673,7 +673,7 @@ glabel sparksCreate
|
|||
/* f12ffc8: 24050020 */ addiu $a1,$zero,0x20
|
||||
/* f12ffcc: 11610015 */ beq $t3,$at,.L0f130024
|
||||
/* f12ffd0: 24060080 */ addiu $a2,$zero,0x80
|
||||
/* f12ffd4: 0fc010e3 */ jal func0f00438c
|
||||
/* f12ffd4: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f12ffd8: 8e240010 */ lw $a0,0x10($s1)
|
||||
/* f12ffdc: 10000012 */ b .L0f130028
|
||||
/* f12ffe0: 240e0001 */ addiu $t6,$zero,0x1
|
||||
|
|
@ -683,7 +683,7 @@ glabel sparksCreate
|
|||
/* f12ffec: 24050040 */ addiu $a1,$zero,0x40
|
||||
/* f12fff0: 1141000c */ beq $t2,$at,.L0f130024
|
||||
/* f12fff4: 24060080 */ addiu $a2,$zero,0x80
|
||||
/* f12fff8: 0fc010e3 */ jal func0f00438c
|
||||
/* f12fff8: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f12fffc: 8e240010 */ lw $a0,0x10($s1)
|
||||
/* f130000: 10000009 */ b .L0f130028
|
||||
/* f130004: 240e0001 */ addiu $t6,$zero,0x1
|
||||
|
|
@ -693,7 +693,7 @@ glabel sparksCreate
|
|||
/* f130010: 240500c8 */ addiu $a1,$zero,0xc8
|
||||
/* f130014: 11810003 */ beq $t4,$at,.L0f130024
|
||||
/* f130018: 240600ff */ addiu $a2,$zero,0xff
|
||||
/* f13001c: 0fc010e3 */ jal func0f00438c
|
||||
/* f13001c: 0fc010e3 */ jal roomAdjustLighting
|
||||
/* f130020: 8e240010 */ lw $a0,0x10($s1)
|
||||
.L0f130024:
|
||||
/* f130024: 240e0001 */ addiu $t6,$zero,0x1
|
||||
|
|
|
|||
|
|
@ -3156,10 +3156,18 @@
|
|||
value, \
|
||||
bool,
|
||||
|
||||
#define damage_player(chr, u1, operation) \
|
||||
/**
|
||||
* Poison or unpoison the given chr by the given amount.
|
||||
*
|
||||
* If operation is 0, the chr is poisoned, likely without any ongoing effects.
|
||||
* If operation is 2, the chr is poisoned, likely with the same effects as being
|
||||
* hit by a combat knife.
|
||||
* If operation is anything else, the chr is unpoisoned by the given amount.
|
||||
*/
|
||||
#define poison_chr(chr, amount, operation) \
|
||||
mkshort(0x016e), \
|
||||
chr, \
|
||||
u1, \
|
||||
amount, \
|
||||
operation,
|
||||
|
||||
// Likely related to being disarmed.
|
||||
|
|
|
|||
|
|
@ -500,7 +500,7 @@
|
|||
#define CHRCFLAG_00040000 0x00040000 // Used a lot
|
||||
#define CHRCFLAG_RUNFASTER 0x00080000
|
||||
#define CHRCFLAG_KILLCOUNTABLE 0x00100000
|
||||
#define CHRCFLAG_00200000 0x00200000 // Unset by cmd 00fd
|
||||
#define CHRCFLAG_TRIGGERSHOTLIST 0x00200000
|
||||
#define CHRCFLAG_00400000 0x00400000 // Not used in scripts
|
||||
#define CHRCFLAG_UNPLAYABLE 0x00800000
|
||||
#define CHRCFLAG_PUSHABLE 0x01000000 // Typically set on allies during init
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ u32 func0f033728(void);
|
|||
u32 func0f0338e0(void);
|
||||
void chrSetShield(struct chrdata *chr, f32 shield);
|
||||
u32 func0f034080(void);
|
||||
void func0f034124(struct chrdata *chr, f32 arg1, struct coord *coord, u8 *arg3, struct prop *prop);
|
||||
void chrPoison(struct chrdata *chr, f32 arg1, struct coord *coord, u8 *arg3, struct prop *prop);
|
||||
void func0f03417c(struct chrdata *chr, f32 arg1, struct coord *coord, u32 arg3, struct prop *prop);
|
||||
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *coord, struct hand *hand, struct prop *prop, u32 arg5, struct prop *prop2, s32 arg7, s32 arg8, s32 arg9, u32 arg10);
|
||||
void func0f034330(struct chrdata *chr, f32 damage, struct coord *vector, u8 *arg3, struct prop *prop, s32 arg5);
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@
|
|||
/*0x016b*/ bool ai016b(void);
|
||||
/*0x016c*/ bool aiNoOp016c(void);
|
||||
/*0x016d*/ bool aiChrAdjustMotionBlur(void);
|
||||
/*0x016e*/ bool aiDamagePlayer(void);
|
||||
/*0x016e*/ bool aiPoisonChr(void);
|
||||
/*0x016f*/ bool aiIfChrHasGun(void);
|
||||
/*0x0170*/ bool aiDoGunCommand(void);
|
||||
/*0x0171*/ bool aiIfDistanceToGunLessThan(void);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ void func0f0035c0(void);
|
|||
void func0f00372c(void);
|
||||
void func0f0037ac(void);
|
||||
void func0f004314(void);
|
||||
void func0f00438c(s32 roomnum, s32 start, s32 limit);
|
||||
void roomAdjustLighting(s32 roomnum, s32 start, s32 limit);
|
||||
void func0f004558(s32 roomnum, s32 increment, s32 limit);
|
||||
void func0f004604(s32 roomnum);
|
||||
void func0f004c6c(void);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ s32 nbombCalculateAlpha(struct nbomb *nbomb);
|
|||
Gfx *nbombCreateGdl(void);
|
||||
Gfx *nbombRender(Gfx *gdl, struct nbomb *nbomb, Gfx *subgdl);
|
||||
void func0f0099a4(void);
|
||||
void func0f0099e4(struct nbomb *nbomb);
|
||||
void nbombInflictDamage(struct nbomb *nbomb);
|
||||
void nbombTick(struct nbomb *nbomb);
|
||||
void nbombsTick(void);
|
||||
Gfx *nbombsRender(Gfx *gdl);
|
||||
|
|
|
|||
Loading…
Reference in New Issue