Improve quip related commands and data

This commit is contained in:
Ryan Dwyer 2019-09-23 18:04:08 +10:00
parent 02b7c43738
commit 6e0806bbf7
4 changed files with 97 additions and 72 deletions

View File

@ -15262,8 +15262,7 @@ u32 var0000f010 = 0x00000000;
u32 var0000f014 = 0x00000000;
// f018
u16 quiptable[] = {
// Part 1
u16 quiptable_human_bank0[] = {
0x0000, 0x027b, 0x027b, 0x027c,
0x0001, 0x027d, 0x027e, 0x027f,
0x0002, 0x028a, 0x028b, 0x028c,
@ -15305,8 +15304,10 @@ u16 quiptable[] = {
0x0026, 0x02a3, 0x02a4, 0x02a5,
0x0027, 0x04c6, 0x04c6, 0x04c6,
0x0028, 0x1aa6, 0x1aa6, 0x1aa6,
};
// Part 2
// f160
u16 quiptable_f160[] = {
0x0000, 0x0322, 0x0323, 0x0324,
0x0001, 0x0325, 0x0326, 0x0327,
0x0002, 0x812e, 0x0335, 0x0336,
@ -15348,8 +15349,10 @@ u16 quiptable[] = {
0x0026, 0x0356, 0x0357, 0x035a,
0x0027, 0x812b, 0x032f, 0x812c,
0x0028, 0x1ad2, 0x1ad2, 0x1ad2,
};
// Part 3
// f2a8
u16 quiptable_f2a8[] = {
0x0000, 0x03e7, 0x03e8, 0x03e9,
0x0001, 0x03ea, 0x03eb, 0x03ec,
0x0002, 0x03f9, 0x03fa, 0x03fb,
@ -15391,8 +15394,10 @@ u16 quiptable[] = {
0x0026, 0x041b, 0x0417, 0x041d,
0x0027, 0x8134, 0x03f4, 0x8134,
0x0028, 0x1adb, 0x1adb, 0x1adb,
};
// Part 4
// f3f0
u16 quiptable_f3f0[] = {
0x0000, 0x0396, 0x0396, 0x0396,
0x0001, 0x0037, 0x0398, 0x0399,
0x0002, 0x03a4, 0x0037, 0x03a6,
@ -15434,8 +15439,10 @@ u16 quiptable[] = {
0x0026, 0x03bc, 0x03be, 0x03c0,
0x0027, 0x039f, 0x039f, 0x039f,
0x0028, 0x0000, 0x0000, 0x0000,
};
// Part 5
// f538
u16 quiptable_human_bank1[] = {
0x0000, 0x0af2, 0x0af3, 0x0af8,
0x0001, 0x1aee, 0x1aef, 0x1aee,
0x0002, 0x023d, 0x023e, 0x0247,
@ -15482,8 +15489,10 @@ u16 quiptable[] = {
0x002b, 0x0af2, 0x0af8, 0x0af8,
0x002c, 0x0525, 0x0525, 0x0525,
0x002d, 0x1aec, 0x1aec, 0x1aec,
};
// Part 6
// f6a8
u16 quiptable_f6a8[] = {
0x0001, 0x0253, 0x0254, 0x0255,
0x0002, 0x0256, 0x0257, 0x0256,
0x0003, 0x1e40, 0x1e41, 0x1e42,
@ -15494,19 +15503,25 @@ u16 quiptable[] = {
0x0008, 0x1e4f, 0x1e50, 0x1e51,
0x0009, 0x1e52, 0x1e53, 0x1e54,
0x000a, 0x4a0a, 0x4a0c, 0x4a0c,
};
// Part 7
// f6f8
u16 quiptable_skedar[] = {
0x0001, 0x0529, 0x052a, 0x052b,
0x0002, 0x052d, 0x052e, 0x052f,
0x0003, 0x0530, 0x0530, 0x0531,
};
// Part 8
// f710
u16 quiptable_f710[] = {
0x0001, 0x0532, 0x0533, 0x0534,
0x0002, 0x0536, 0x0537, 0x0538,
0x0003, 0x0539, 0x0539, 0x053a,
// Part 9
0x0000, 0x0000, 0x0000, 0x0000,
};
// f730
u16 quiptable_maian[] = {
0x0001, 0x05e2, 0x05e3, 0x05e4,
0x0002, 0x05e5, 0x05e6, 0x05e7,
0x0003, 0x05df, 0x05e0, 0x05e1,
@ -15537,58 +15552,57 @@ u32 var0000f7a0 = 0x00000000;
u32 var0000f7a4 = 0x00000000;
u32 var0000f7a8 = 0x00000000;
u32 var0000f7ac = 0x1a000003;
u32 var0000f7b0 = 0x17a117a2;
u32 var0000f7b4 = 0x17a317a4;
u32 var0000f7b8 = 0x17a517a6;
u32 var0000f7bc = 0x17a717a8;
u32 var0000f7c0 = 0x17a917aa;
u32 var0000f7c4 = 0x17ab17ac;
u32 var0000f7c8 = 0x17ad17ae;
u32 var0000f7cc = 0x17af179e;
u32 var0000f7d0 = 0x179f17a0;
u32 var0000f7d4 = 0x80288028;
u32 var0000f7d8 = 0x8028802b;
u32 var0000f7dc = 0x802b802b;
u32 var0000f7e0 = 0x802c802d;
u32 var0000f7e4 = 0x802e802f;
u32 var0000f7e8 = 0x802f802f;
u32 var0000f7ec = 0x80308030;
u32 var0000f7f0 = 0x80308031;
u32 var0000f7f4 = 0x80318031;
u32 var0000f7f8 = 0x80328032;
u32 var0000f7fc = 0x80338033;
u32 var0000f800 = 0x80348034;
u32 var0000f804 = 0x80358035;
u32 var0000f808 = 0x80368036;
u32 var0000f80c = 0x80378037;
u32 var0000f810 = 0x177b177b;
u32 var0000f814 = 0x177b177d;
u32 var0000f818 = 0x177d177d;
u32 var0000f81c = 0x1789178a;
u32 var0000f820 = 0x178b178d;
u32 var0000f824 = 0x178d178d;
u32 var0000f828 = 0x17951795;
u32 var0000f82c = 0x17951785;
u32 var0000f830 = 0x17851785;
u32 var0000f834 = 0x17911791;
u32 var0000f838 = 0x17911791;
u32 var0000f83c = 0x17911791;
u32 var0000f840 = 0x17821782;
u32 var0000f844 = 0x17821783;
u32 var0000f848 = 0x17831783;
u32 var0000f84c = 0x00001b1c;
u32 var0000f850 = 0x1b1f1b20;
u32 var0000f854 = 0x00001b1e;
u32 var0000f858 = 0x1b211b21;
u32 var0000f85c = 0x1b1d1b1d;
u32 var0000f860 = 0x02960297;
u32 var0000f864 = 0x0298028a;
u32 var0000f868 = 0x028c0290;
u32 var0000f86c = 0x029100a3;
u32 var0000f870 = 0x028e028f;
u32 var0000f874 = 0x02310232;
u32 var0000f878 = 0x02330234;
u32 var0000f87c = 0x028d0000;
// f7b0
u16 ciquiptable_bank1[] = {
0x17a1, 0x17a2, 0x17a3, 0x17a4, 0x17a5, 0x17a6, 0x17a7, 0x17a8,
0x17a9, 0x17aa, 0x17ab, 0x17ac, 0x17ad, 0x17ae, 0x17af, 0x179e,
0x179f, 0x17a0,
};
// f7d4
u16 ciquiptable_bank0[] = {
0x8028, 0x8028, 0x8028, 0x802b, 0x802b, 0x802b, 0x802c, 0x802d,
0x802e, 0x802f, 0x802f, 0x802f, 0x8030, 0x8030, 0x8030, 0x8031,
0x8031, 0x8031, 0x8032, 0x8032, 0x8033, 0x8033, 0x8034, 0x8034,
0x8035, 0x8035, 0x8036, 0x8036, 0x8037, 0x8037,
};
// f810
u16 ciquiptable_bank2[] = {
0x177b, 0x177b, 0x177b, 0x177d, 0x177d, 0x177d, 0x1789, 0x178a,
0x178b, 0x178d, 0x178d, 0x178d, 0x1795, 0x1795, 0x1795, 0x1785,
0x1785, 0x1785, 0x1791, 0x1791, 0x1791, 0x1791, 0x1791, 0x1791,
0x1782, 0x1782, 0x1782, 0x1783, 0x1783, 0x1783,
};
// f84c
u16 ciquiptable_bank3[] = {
0x0000, 0x1b1c, 0x1b1f, 0x1b20, 0x0000, 0x1b1e, 0x1b21, 0x1b21,
0x1b1d, 0x1b1d,
};
// f860
// table for cmd 01a3 (do_special_animation)
u16 special_animations[] = {
0x0296,
0x0297,
0x0298, // when value is 3 (1/2 chance)
0x028a, // when value is 3 (1/2 chance)
0x028c,
0x0290,
0x0291, // when value is -1 (1/8 chance)
0x00a3, // when value is -1 (1/8 chance) - talking anim
0x028e, // when value is -1 (1/8 chance)
0x028f, // when value is -1 (1/8 chance)
0x0231, // when value is -1 (1/8 chance) - talking anim
0x0232, // when value is -1 (1/8 chance) - talking anim
0x0233, // when value is -1 (1/8 chance) - talking anim
0x0234, // when value is -1 (1/8 chance) - talking anim
0x028d,
0x0000,
};
u32 var0000f880 = 0x00000000;
u32 var0000f884 = 0x00000000;
u32 var0000f888 = 0x00000000;

View File

@ -1158,11 +1158,16 @@
#define cmd012f \
mkshort(0x012f),
#define say_quip(chr, u1, index, u2, u3, bank, u4, channel) \
/**
* Make chr say something out of a random set of 3. Sets are defined in globals.
* The bank argument applies to humans only. Skedar and maians have their own
* hard coded banks.
*/
#define say_quip(chr, index, u1, u2, u3, bank, u4, channel) \
mkshort(0x0130), \
chr, \
u1, \
index, \
u1, \
u2, \
u3, \
bank, \
@ -1574,11 +1579,17 @@
#define set_chr_roomtosearch \
mkshort(0x01a1),
#define play_chr_specific_quip(bank, channel) \
#define play_cistaff_quip(bank, channel) \
mkshort(0x01a2), \
bank, \
channel,
/**
* If value is -2, either do 0x299 or 0x29a based on something.
* If value is -1, choose a random anim out of 8 from bank at 8006984c.
* If value is 3, choose a random anim out of 2 from bank at 80069844.
* Any other value is an index into bank at 80069840.
*/
#define do_special_animation(value) \
mkshort(0x01a3), \
value,

View File

@ -606,7 +606,7 @@ u8 func041e_colleague[] = {
label(0x7f)
animation(ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2)
label(0x2f)
play_chr_specific_quip(BANK_0, CHANNEL_6)
play_cistaff_quip(BANK_0, CHANNEL_6)
restart_timer
beginloop(0x57)
@ -637,7 +637,7 @@ u8 func041e_colleague[] = {
label(0x06)
do_special_animation(-1)
label(0x06)
play_chr_specific_quip(BANK_1, CHANNEL_6)
play_cistaff_quip(BANK_1, CHANNEL_6)
restart_timer
beginloop(0x5b)
@ -680,7 +680,7 @@ u8 func041e_colleague[] = {
label(0x7f)
animation(ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2)
label(0x06)
play_chr_specific_quip(BANK_2, CHANNEL_6)
play_cistaff_quip(BANK_2, CHANNEL_6)
restart_timer
beginloop(0x5c)
@ -2475,7 +2475,7 @@ u8 func0429_grimshaw_disguise[] = {
label(0x06)
dprint 'I','n','i','t','i','a','l','i','s','e','c',0,
do_special_animation(3)
play_chr_specific_quip(BANK_0, CHANNEL_6)
play_cistaff_quip(BANK_0, CHANNEL_6)
restart_timer
beginloop(0x57)

View File

@ -1995,7 +1995,7 @@ u8 func0425_hostage_thank_and_run[] = {
goto_first(0x0b)
label(0x08)
play_chr_specific_quip(BANK_3, CHANNEL_6)
play_cistaff_quip(BANK_3, CHANNEL_6)
animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2)
label(0x2f)
restart_timer
@ -2085,7 +2085,7 @@ u8 func0427_drop_devastator[] = {
give_object_to_chr(OBJ_DEVASTATOR, CHR_SELF)
yield
drop_concealed_items(CHR_SELF)
play_chr_specific_quip(BANK_3, CHANNEL_6)
play_cistaff_quip(BANK_3, CHANNEL_6)
animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2)
restart_timer