Cast Member
Researched by SuperSaiyajinStackZ, Version: 0.1.0.
Some notes
- There are 26 Cast Members in game.
- The first Cast Member starts at
0x466
of the slot. - The size of the Cast Member Structure is:
0xA
(10) bytes. -
The full size for the Cast Member section is:
0x104
bytes ( 26 * 0xA ). - NOTE: The final Offset varies with the amount of items you have in your house, see Cast Member Offset for how to get the proper final Offset.
Structure
You can find a C++ structure for the Cast Members below.
struct CastMember {
enum class CastFeeling : uint8_t { Neutral = 0x0, Happy = 0x1, Angry = 0x2, Romantic = 0x3 }; // To make the feeling stuff more clear, to what value what feeling is.
uint8_t FriendlyLevel = 0x3; // The friendly conversation level of the cast member; 0 - 3 is valid; 0x0.
uint8_t RomanceLevel = 0x3; // The romance conversation level of the cast member; 0 - 3 is valid; 0x1.
uint8_t IntimidateLevel = 0x3; // The intimidate conversation level of the cast member; 0 - 3 is valid; 0x2.
CastFeeling Feeling = CastFeeling::Neutral; // The Feeling of the cast member; See the enum class above for what value is for which feeling; 0x3.
uint8_t Unknown1[0x2] = { 0x0 }; // Unknown as of yet; 0x4 - 0x5.
uint8_t FeelingEffectHours = 0x0; // The Hours that are left for the feeling effect; 0x6.
bool RegisteredOnPhone = false; // The state if the cast member got registered on your phone; 0x7.
bool SecretUnlocked = false; // The state if the cast member's secret has been unlocked; 0x8.
uint8_t Unknown2 = 0x0; // Unknown as of yet; 0x9.
};
Cast Member Offset
The Cast Member final offset depends on how many items you have in your House.
The amount of items you have in your house is stored at byte 0xD6
of the SavSlot’s Data.
See below for a way how to get the final offset.
/*
SlotData is the data of the SavSlot.
CastMemberIdx is the cast member index ( 0 - 25 ).
*/
uint32_t GetOffset(uint8_t *SlotData, uint8_t CastMemberIdx) {
if (CastMemberIdx >= 26) return 0; // Out of scope. Only 0 - 25 is valid.
return 0x466 + (CastMemberIdx * 0xA) + (SlotData[0xD6] * 0x6);
/*
If you instead want to access it directly from the SavData instead of the SlotData, rework it like this:
Slot being '1' for Slot 1, '2' for Slot 2 etc.
return (Slot * 0x1000) + 0x466 + (CastMemberIdx * 0xA) + (SavData[(Slot * 0x1000) + 0xD6] * 0x6);
*/
};
Cast Member List
You can find a list with the base offsets for each Cast Member below in the Table.
Cast Member Name | Start Offset | End Offset |
---|---|---|
Emperor Xizzle | 0x0 | 0x9 |
Burple | 0xA | 0x13 |
Ara Fusilli | 0x14 | 0x1D |
Auda Sherif | 0x1E | 0x27 |
Ava Cadavra | 0x28 | 0x31 |
Bigfoot | 0x32 | 0x3B |
Frankie Fusilli | 0x3C | 0x45 |
Dusty Hogg | 0x46 | 0x4F |
Giuseppi Mezzoalto | 0x50 | 0x59 |
Honest Jackson | 0x5A | 0x63 |
Jebediah Jerky | 0x64 | 0x6D |
Jimmy the Neck | 0x6E | 0x77 |
Kayleigh Wintercrest | 0x78 | 0x81 |
Luthor L. Bigbucks | 0x82 | 0x8B |
Mamma Hogg | 0x8C | 0x95 |
Misty Waters | 0x96 | 0x9F |
Lord Mole | 0xA0 | 0xA9 |
Mummy | 0xAA | 0xB3 |
Optimum Alfred | 0xB4 | 0xBD |
Penelope Redd | 0xBE | 0xC7 |
Pepper Pete | 0xC8 | 0xD1 |
Kent Hackett | 0xD2 | 0xDB |
Sancho Paco Panza | 0xDC | 0xE5 |
Tank Grunt | 0xE6 | 0xEF |
Tristan Legend | 0xF0 | 0xF9 |
Yeti | 0xFA | 0x103 |
Cast Member Conversations
Each Cast Member has the Friendly
, Romantic
and Intimidate
Conversation Levels stored.
Starting with Friendly at byte 0x0
, then following with Romantic at byte 0x1
and the last Intimidate with byte 0x2
.
The Level range is from 0
for no conversation up to 3
for the max conversation levels.
Cast Member Feelings
Yes, Cast Members also have feelings, lol. The feelings can be seen, if you do one of the following actions:
- You wave to them by pressing
L
in the near of them. You will see their feeling as the thinking bubble on the top of their head. NOTE: If they are feeling neutral, they may not show an actual feeling and instead something episode related. - You take an interaction with them. You will see their feeling from their Picture.
- You look into the Cast Member List. You will see their feeling from their Picture.
After you give a Cast Member a gift that they may like or hate, it sets byte 0x6
to 0x18
(24), that are the hours the effect will last until it changes back to Neutral. Every full hour, that value will decrease for 0x1
.
The feeling is stored at byte 0x4
in the structure of the Cast Members.
Below you will find a table with the values and the feelings.
Feeling | Value |
---|---|
Neutral | 0x0 |
Happy | 0x1 |
Angry | 0x2 |
Romantic | 0x3 |
Cast Member Phone
The registered on the Phone state is stored in the at byte 0x7
in the structure of the Cast Members.
It exactly needs to be set as 0x1
if you want them to be registered, everything else sets it to not registered.
Cast Member Secret
The state if you unlocked the Secret of the Cast Member is stored at byte 0x8
in the structure of the Cast Members.
I believe the same note as the one for the Cast Member Phone one counts as well with:
It exactly needs to be set as
0x1
if you want them to be registered, everything else sets it to not registered.
But instead of registered, it’d be unlocked obviously.