Discover play_music_continuously AI command

This commit is contained in:
Ryan Dwyer 2020-02-08 20:55:17 +10:00
parent 9f8d333cf7
commit 377fe3f6f1
6 changed files with 18 additions and 11 deletions

View File

@ -708,7 +708,7 @@ u8 func1006_hijack[] = {
endloop(0x04)
label(0x06)
cmd01da(0x35)
play_music_continuously(MUSIC_AIRFORCEONE_X)
set_chr_maxdamage(0x01, 10)
set_chr_maxdamage(0x04, 10)
set_chr_maxdamage(0x05, 10)

View File

@ -13886,8 +13886,8 @@ bool aiShowCutsceneChrs(void)
if (show) {
for (i = getNumChrs() - 1; i >= 0; i--) {
if (g_ChrsA[i].chrnum >= 0 && g_ChrsA[i].prop && (g_ChrsA[i].hidden2 & 1)) {
g_ChrsA[i].hidden2 &= ~1;
if (g_ChrsA[i].chrnum >= 0 && g_ChrsA[i].prop && (g_ChrsA[i].hidden2 & CHRH2FLAG_0001)) {
g_ChrsA[i].hidden2 &= ~CHRH2FLAG_0001;
g_ChrsA[i].chrflags &= ~CHRCFLAG_HIDDEN;
}
}
@ -13895,7 +13895,7 @@ bool aiShowCutsceneChrs(void)
for (i = getNumChrs() - 1; i >= 0; i--) {
if (g_ChrsA[i].chrnum >= 0 && g_ChrsA[i].prop &&
(g_ChrsA[i].chrflags & (CHRCFLAG_UNPLAYABLE | CHRCFLAG_HIDDEN)) == 0) {
g_ChrsA[i].hidden2 |= 1;
g_ChrsA[i].hidden2 |= CHRH2FLAG_0001;
g_ChrsA[i].chrflags |= CHRCFLAG_HIDDEN;
}
}
@ -14092,7 +14092,7 @@ glabel ai01d9
/**
* @cmd 01da
*/
bool ai01da(void)
bool aiPlayMusicContinuously(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
func0f16deb8(cmd[2]);

View File

@ -6693,7 +6693,7 @@ bool (*g_CommandPointers[])(void) = {
/*0x01d7*/ aiIfDistanceToTarget2LessThan,
/*0x01d8*/ aiIfDistanceToTarget2GreaterThan,
/*0x01d9*/ ai01d9,
/*0x01da*/ ai01da,
/*0x01da*/ aiPlayMusicContinuously,
/*0x01db*/ aiChrKill,
/*0x01dc*/ aiRemoveWeaponFromInventory,
/*0x01dd*/ ai01dd,

View File

@ -3747,11 +3747,15 @@
0x00, \
u2,
// Only called in AF1 with param 0x35.
// Calls some functions and stores the value at 800840c8.
#define cmd01da(u1) \
/**
* Unsure exactly how this works. I think it replaces the main level theme with
* the one specified.
*
* Track is expected to be a MUSIC constant.
*/
#define play_music_continuously(track) \
mkshort(0x01da), \
u1,
track,
/**
* Kills the given chr.

View File

@ -324,6 +324,9 @@
#define CHRHFLAG_40000000 0x40000000 // Air Base and AF1
#define CHRHFLAG_PSYCHOSISED 0x80000000
// chr->hidden2
#define CHRH2FLAG_0001 0x0001
// chr->chrflags
#define CHRCFLAG_00000001 0x00000001 // Villa takers, Attack Ship Cass and skedar - both set at end of intros
#define CHRCFLAG_00000002 0x00000002 // Seems to be set on guards who can spawn clones?

View File

@ -437,7 +437,7 @@
/*0x01d7*/ bool aiIfDistanceToTarget2LessThan(void);
/*0x01d8*/ bool aiIfDistanceToTarget2GreaterThan(void);
/*0x01d9*/ bool ai01d9(void);
/*0x01da*/ bool ai01da(void);
/*0x01da*/ bool aiPlayMusicContinuously(void);
/*0x01db*/ bool aiChrKill(void);
/*0x01dc*/ bool aiRemoveWeaponFromInventory(void);
/*0x01dd*/ bool ai01dd(void);