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

View File

@ -1158,11 +1158,16 @@
#define cmd012f \ #define cmd012f \
mkshort(0x012f), 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), \ mkshort(0x0130), \
chr, \ chr, \
u1, \
index, \ index, \
u1, \
u2, \ u2, \
u3, \ u3, \
bank, \ bank, \
@ -1574,11 +1579,17 @@
#define set_chr_roomtosearch \ #define set_chr_roomtosearch \
mkshort(0x01a1), mkshort(0x01a1),
#define play_chr_specific_quip(bank, channel) \ #define play_cistaff_quip(bank, channel) \
mkshort(0x01a2), \ mkshort(0x01a2), \
bank, \ bank, \
channel, 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) \ #define do_special_animation(value) \
mkshort(0x01a3), \ mkshort(0x01a3), \
value, value,

View File

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

View File

@ -1995,7 +1995,7 @@ u8 func0425_hostage_thank_and_run[] = {
goto_first(0x0b) goto_first(0x0b)
label(0x08) 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) animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2)
label(0x2f) label(0x2f)
restart_timer restart_timer
@ -2085,7 +2085,7 @@ u8 func0427_drop_devastator[] = {
give_object_to_chr(OBJ_DEVASTATOR, CHR_SELF) give_object_to_chr(OBJ_DEVASTATOR, CHR_SELF)
yield yield
drop_concealed_items(CHR_SELF) 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) animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2)
restart_timer restart_timer