From 4cee21a5158acc11e8bf0c7cfdd38feec5be3c76 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 15 Jul 2016 22:42:29 +0100 Subject: [PATCH] import PeepThoughtToActionMap data --- src/peep/peep.c | 188 +++++++++++++++++++++++++++++++++++++++++++++++- src/peep/peep.h | 4 +- 2 files changed, 187 insertions(+), 5 deletions(-) diff --git a/src/peep/peep.c b/src/peep/peep.c index 5bde48c721..589950efac 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -144,6 +144,188 @@ const char *gPeepEasterEggNames[] = { "DAVID ELLIS" }; +/** rct2: 0x00981DB0 */ +static struct { + uint8 action; + uint8 unk_01; +} PeepThoughtToActionMap[] = { + { PEEP_ACTION_SHAKE_HEAD, 1 }, + { PEEP_ACTION_EMPTY_POCKETS, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_WOW, 1 }, + { PEEP_ACTION_NONE_2, 2 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 4 }, + { PEEP_ACTION_SHAKE_HEAD, 4 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_WAVE, 0 }, + { PEEP_ACTION_JOY, 1 }, + { PEEP_ACTION_CHECK_TIME, 1 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_WAVE, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_WAVE, 0 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_27, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_29, 0 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 1 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_SHAKE_HEAD, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_NONE_2, 0 }, + { PEEP_ACTION_JOY, 0 }, + { PEEP_ACTION_NONE_2, 1 }, +}; + + // These arrays contain the base minimum and maximum nausea ratings for peeps, based on their nausea tolerance level. static const ride_rating NauseaMinimumThresholds[] = { 0, 0, 200, 400 @@ -6664,9 +6846,9 @@ static int peep_should_find_bench(rct_peep* peep){ * ah:thought_arguments * esi: peep */ -void peep_insert_new_thought(rct_peep *peep, uint8 thought_type, uint8 thought_arguments){ - uint8 action = RCT2_ADDRESS(0x981DB0, uint16)[thought_type] & 0xFF; - +void peep_insert_new_thought(rct_peep *peep, uint8 thought_type, uint8 thought_arguments) +{ + uint8 action = PeepThoughtToActionMap[thought_type].action; if (action != 0xFF && peep->action >= 254){ peep->action = action; peep->action_frame = 0; diff --git a/src/peep/peep.h b/src/peep/peep.h index 7a763c7434..0a69a09de7 100644 --- a/src/peep/peep.h +++ b/src/peep/peep.h @@ -236,9 +236,9 @@ enum PEEP_ACTION_EVENTS { PEEP_ACTION_WAVE_2 = 24, PEEP_ACTION_TAKE_PHOTO = 25, PEEP_ACTION_CLAP = 26, - + PEEP_ACTION_27 = 27, PEEP_ACTION_DRAW_PICTURE = 28, - + PEEP_ACTION_29, PEEP_ACTION_WITHDRAW_MONEY = 30, PEEP_ACTION_NONE_1 = 254,