Add table for missing clothing in Styling Star to replace with

ALSO: Update non-clothing tables
This commit is contained in:
RocketRobz 2022-08-16 21:13:21 -06:00
parent e0682a1863
commit c9fe09a66c

View File

@ -792,7 +792,7 @@ static u8 SS3ToSS4EyebrowTable[SS3ToSS4EyebrowAmount][2] = { // Offset: 0x07
static u8 SS3ToSS4LipstickTable[SS3ToSS4LipstickAmount][2] = { // Offset: 0x0A
{0x0F, 0x2B},
{0x15, 0x5E},
{0x17, 0x29},
{0x17, 0x40},
{0x1A, 0x60},
{0x1F, 0x08},
{0x20, 0x39},
@ -810,7 +810,7 @@ static u8 SS3ToSS4LipstickTable[SS3ToSS4LipstickAmount][2] = { // Offset: 0x0A
{0x71, 0x31},
};
#define SS3ToSS4MascaraAmount 11
#define SS3ToSS4MascaraAmount 12
// Left: SS3, Right: SS4
static u8 SS3ToSS4MascaraTable[SS3ToSS4MascaraAmount][2] = { // Offset: 0x0B
@ -821,13 +821,14 @@ static u8 SS3ToSS4MascaraTable[SS3ToSS4MascaraAmount][2] = { // Offset: 0x0B
{0x28, 0x12},
{0x2A, 0x0E},
{0x42, 0x10},
{0x56, 0x02},
{0x5A, 0x2F},
{0x5D, 0x2F},
{0x5F, 0x2F},
{0x75, 0x10},
};
#define SS3ToSS4EyeshadowAmount 23
#define SS3ToSS4EyeshadowAmount 24
// Left: SS3, Right: SS4
static u8 SS3ToSS4EyeshadowTable[SS3ToSS4EyeshadowAmount][2] = { // Offset: 0x0C
@ -843,6 +844,7 @@ static u8 SS3ToSS4EyeshadowTable[SS3ToSS4EyeshadowAmount][2] = { // Offset: 0x0C
{0x21, 0x3E},
{0x23, 0x2B},
{0x2A, 0x2B},
{0x2B, 0x08},
{0x31, 0x2F},
{0x34, 0x50},
{0x36, 0x43},
@ -856,7 +858,7 @@ static u8 SS3ToSS4EyeshadowTable[SS3ToSS4EyeshadowAmount][2] = { // Offset: 0x0C
{0x74, 0x29},
};
#define SS3ToSS4EyelinerAmount 14
#define SS3ToSS4EyelinerAmount 16
// Left: SS3, Right: SS4
static u8 SS3ToSS4EyelinerTable[SS3ToSS4EyelinerAmount][2] = { // Offset: 0x0D
@ -866,6 +868,7 @@ static u8 SS3ToSS4EyelinerTable[SS3ToSS4EyelinerAmount][2] = { // Offset: 0x0D
{0x10, 0x49},
{0x17, 0x44},
{0x1B, 0x5C},
{0x1C, 0x3B},
{0x21, 0x44},
{0x28, 0x14},
{0x36, 0x50},
@ -873,10 +876,11 @@ static u8 SS3ToSS4EyelinerTable[SS3ToSS4EyelinerAmount][2] = { // Offset: 0x0D
{0x45, 0x19},
{0x4E, 0x2E},
{0x59, 0x42},
{0x73, 0x14},
{0x74, 0x06},
};
#define SS3ToSS4ContactAmount 22
#define SS3ToSS4ContactAmount 23
// Left: SS3, Right: SS4
static u8 SS3ToSS4ContactTable[SS3ToSS4ContactAmount][2] = { // Offset: 0x0E
@ -892,6 +896,7 @@ static u8 SS3ToSS4ContactTable[SS3ToSS4ContactAmount][2] = { // Offset: 0x0E
{0x2C, 0x12},
{0x2D, 0x21},
{0x2E, 0x30},
{0x31, 0x12},
{0x46, 0x1D},
{0x55, 0x3F},
{0x5A, 0x30},
@ -904,7 +909,7 @@ static u8 SS3ToSS4ContactTable[SS3ToSS4ContactAmount][2] = { // Offset: 0x0E
{0x73, 0x3A},
};
#define SS3ToSS4BlusherAmount 14
#define SS3ToSS4BlusherAmount 15
// Left: SS3, Right: SS4
static u8 SS3ToSS4BlusherTable[SS3ToSS4BlusherAmount][2] = { // Offset: 0x0F
@ -915,6 +920,7 @@ static u8 SS3ToSS4BlusherTable[SS3ToSS4BlusherAmount][2] = { // Offset: 0x0F
{0x20, 0x0A},
{0x21, 0x0A},
{0x23, 0x0E},
{0x2B, 0x09},
{0x30, 0x04},
{0x56, 0x0E},
{0x64, 0x12},
@ -952,6 +958,68 @@ static u8 SS3ToSS4HairStyleTable[SS3ToSS4HairStyleAmount][2] = { // Offset: 0x15
{0x4A, 0x52},
};
#define SS3ToSS4InnerTopAmount 14
// Left: SS3, Right: SS4
static u16 SS3ToSS4InnerTopTable[SS3ToSS4InnerTopAmount][2] = { // Offsets: 0x1E & 0x20 (Table based on 0x1E)
{0x1248, 0x3E87}, // Streetflow: Sleeveless Polo Shirt (White) -> Marzipan Sky: Flowery Sleevelss Shirt
{0x25B8, 0x3D43}, // Streetflow: Sleeveless Polo Shirt (Light-Blue) -> Marzipan Sky: Lace-Panel Sleevelss Shirt
{0x25BA, 0x4D1D}, // Streetflow: Sleeveless Polo Shirt (Green) -> Chorale: Lace-Belted Sleeveless Shirt
{0x25BC, 0x2AB2}, // Streetflow: Sleeveless Polo Shirt (Magenta) -> Chorale: Sleeveless Shirt
{0x25BE, 0x2AB6}, // Streetflow: Sleeveless Polo Shirt (Black) -> Chorale: Sleeveless Shirt
{0x25C0, 0x52AA}, // Streetflow: Sleeveless Polo Shirt (Orange) -> April Bonbon: Funky Two-Tone Shirt
{0x25C2, 0x4D25}, // Streetflow: Sleeveless Polo Shirt (Dark Beige) -> Chorale: Lace-Belted Sleeveless Shirt
{0x399C, 0x3E85}, // Streetflow: Sleeveless Polo Shirt (Red) -> AZ-USA: Stripey Sleeveless Shirt
{0x13CC, 0x13CB}, // Streetflow: Wave Design Shirt (White) -> Chorale: Sleeveless Shirt
{0x25C4, 0x2AB2}, // Streetflow: Wave Design Shirt (Pink) -> Chorale: Sleeveless Shirt
{0x25C6, 0x4D1D}, // Streetflow: Wave Design Shirt (Green) -> Chorale: Lace-Belted Sleeveless Shirt
{0x25C8, 0x2AAE}, // Streetflow: Wave Design Shirt (Purple) -> Chorale: Sleeveless Shirt
{0x25CA, 0x2AB6}, // Streetflow: Wave Design Shirt (Black) -> Chorale: Sleeveless Shirt
{0x399E, 0x3E85}, // Streetflow: Wave Design Shirt (Red) -> AZ-USA: Stripey Sleeveless Shirt
};
#define SS3ToSS4TopAmount 1
// Left: SS3, Right: SS4
static u16 SS3ToSS4TopTable[SS3ToSS4TopAmount][2] = { // Offset: 0x20
{0x5F6A, 0x5D0B}, // Soy: Jellyfish Top -> Soy: Notch Neck Gradient Tunic
};
#define SS3ToSS4SkirtPantsAmount 16
// Left: SS3, Right: SS4
static u16 SS3ToSS4SkirtPantsTable[SS3ToSS4SkirtPantsAmount][2] = { // Offset: 0x2A
{0x0463, 0x28BA}, // Streetflow: Butterfly Miniskirt (White) -> Basic U: Tiered Skirt
{0x2083, 0x28C0}, // Streetflow: Butterfly Miniskirt (Light-Green) -> Basic U: Tiered Skirt
{0x2084, 0x137F}, // Streetflow: Butterfly Miniskirt (Pink) -> April Bonbon: Frilly Denim Skirt
{0x2085, 0x28B9}, // Streetflow: Butterfly Miniskirt (Black) -> Basic U: Tiered Skirt
{0x2086, 0x015F}, // Streetflow: Butterfly Miniskirt (Purple) -> Basic U: Tiered Skirt
{0x3D49, 0x28BE}, // Streetflow: Butterfly Miniskirt (Red) -> Basic U: Tiered Skirt
{0x3A86, 0x28B8}, // Streetflow: Butterfly Miniskirt (Yellow) -> Basic U: Tiered Skirt
{0x3A87, 0x20B2}, // Streetflow: Butterfly Miniskirt (Orange) -> AZ-USA: Tiered Lace Miniskirt
{0x4237, 0x12D6}, // Streetflow: Sporty Miniskirt (Yellow-Green) -> April Bonbon: Miniskirt with Ribbon
{0x4771, 0x4236}, // Streetflow: Sporty Miniskirt (Blue) -> AZ-USA: Gold-Buttoned Miniskirt
{0x4772, 0x43F5}, // Streetflow: Sporty Miniskirt (Green) -> AZ-USA: Gold-Buttoned Miniskirt
{0x4773, 0x36A2}, // Streetflow: Sporty Miniskirt (Orange) -> AZ-USA: Lace-Up Denim Mini
{0x4774, 0x43F6}, // Streetflow: Sporty Miniskirt (Purple) -> AZ-USA: Gold-Buttoned Miniskirt
{0x4775, 0x43FB}, // Streetflow: Sporty Miniskirt (Green-Blue) -> AZ-USA: Gold-Buttoned Miniskirt
{0x4776, 0x43F7}, // Streetflow: Sporty Miniskirt (Magenta) -> AZ-USA: Gold-Buttoned Miniskirt
{0x5F51, 0x1FB0}, // Soy: Undersea Flares -> Basic U: Bootcut Jeans
};
#define SS3ToSS4HatAmount 7
// Left: SS3, Right: SS4
static u16 SS3ToSS4HatTable[SS3ToSS4HatAmount][2] = { // Offset: 0x30
{0x053C, 0x3E0C}, // Streetflow: Butterfly Sun Visor (White) -> April Bonbon: Sun Visor with Ribbon
{0x247B, 0x3CA9}, // Streetflow: Butterfly Sun Visor (Pink) -> April Bonbon: Sun Visor with Ribbon (Magenta)
{0x247C, 0x3E08}, // Streetflow: Butterfly Sun Visor (Light-Blue) -> April Bonbon: Sun Visor with Ribbon
{0x247D, 0x3E09}, // Streetflow: Butterfly Sun Visor (Green) -> April Bonbon: Sun Visor with Ribbon
{0x247E, 0x3E06}, // Streetflow: Butterfly Sun Visor (Black) -> April Bonbon: Sun Visor with Ribbon
{0x247F, 0x3E0A}, // Streetflow: Butterfly Sun Visor (Yellow) -> April Bonbon: Sun Visor with Ribbon
{0x3968, 0x3E0B}, // Streetflow: Butterfly Sun Visor (Red) -> April Bonbon: Sun Visor with Ribbon (Orange)
};
void readSS4Character(u16 id) {
tonccpy(&ss4CharacterData, (char*)ss4Save+getSS4CharacterOffset(id), 0x3E);
}
@ -984,47 +1052,59 @@ void readSS3CharacterToSS4(u16 id) {
}
}
// Lipstick
if (ss4CharacterData.lipstickColor != 0) {
for (i = 0; i < SS3ToSS4LipstickAmount; i++) {
if (ss4CharacterData.lipstickColor == SS3ToSS4LipstickTable[i][0]) {
ss4CharacterData.lipstickColor = SS3ToSS4LipstickTable[i][1];
break;
}
}
}
// Mascara
if (ss4CharacterData.mascaraColor != 0) {
for (i = 0; i < SS3ToSS4MascaraAmount; i++) {
if (ss4CharacterData.mascaraColor == SS3ToSS4MascaraTable[i][0]) {
ss4CharacterData.mascaraColor = SS3ToSS4MascaraTable[i][1];
break;
}
}
}
// Eyeshadow
if (ss4CharacterData.eyeshadowColor != 0) {
for (i = 0; i < SS3ToSS4EyeshadowAmount; i++) {
if (ss4CharacterData.eyeshadowColor == SS3ToSS4EyeshadowTable[i][0]) {
ss4CharacterData.eyeshadowColor = SS3ToSS4EyeshadowTable[i][1];
break;
}
}
}
// Eyeliner
if (ss4CharacterData.eyelinerColor != 0) {
for (i = 0; i < SS3ToSS4EyelinerAmount; i++) {
if (ss4CharacterData.eyelinerColor == SS3ToSS4EyelinerTable[i][0]) {
ss4CharacterData.eyelinerColor = SS3ToSS4EyelinerTable[i][1];
break;
}
}
}
// Contacts
if (ss4CharacterData.contactColor != 0) {
for (i = 0; i < SS3ToSS4ContactAmount; i++) {
if (ss4CharacterData.contactColor == SS3ToSS4ContactTable[i][0]) {
ss4CharacterData.contactColor = SS3ToSS4ContactTable[i][1];
break;
}
}
}
// Blusher
if (ss4CharacterData.blusherColor != 0) {
for (i = 0; i < SS3ToSS4BlusherAmount; i++) {
if (ss4CharacterData.blusherColor == SS3ToSS4BlusherTable[i][0]) {
ss4CharacterData.blusherColor = SS3ToSS4BlusherTable[i][1];
break;
}
}
}
// Overlaying Eyebrows
for (i = 0; i < SS3ToSS4EyebrowAmount; i++) {
if (ss4CharacterData.eyebrowOverlay == SS3ToSS4EyebrowTable[i][0]) {
@ -1039,6 +1119,57 @@ void readSS3CharacterToSS4(u16 id) {
break;
}
}
// Replace fashion items removed in Styling Star
// Inner/Top Hybrid
if (ss4CharacterData.inner != 0) {
for (i = 0; i < SS3ToSS4InnerTopAmount; i++) {
if (ss4CharacterData.inner == SS3ToSS4InnerTopTable[i][0]) {
ss4CharacterData.inner = SS3ToSS4InnerTopTable[i][1];
break;
}
}
}
// Top
if (ss4CharacterData.top != 0) {
bool topChanged = false;
for (i = 0; i < SS3ToSS4InnerTopAmount; i++) {
u16 top1 = ss4CharacterData.top;
top1++;
if (top1 == SS3ToSS4InnerTopTable[i][0]+1) {
top1 = SS3ToSS4InnerTopTable[i][1]+1;
topChanged = true;
break;
}
}
if (!topChanged) {
for (i = 0; i < SS3ToSS4TopAmount; i++) {
if (ss4CharacterData.top == SS3ToSS4TopTable[i][0]) {
ss4CharacterData.top = SS3ToSS4TopTable[i][1];
break;
}
}
}
}
// Skirt/Pants
if (ss4CharacterData.skirtPants != 0) {
for (i = 0; i < SS3ToSS4SkirtPantsAmount; i++) {
if (ss4CharacterData.skirtPants == SS3ToSS4SkirtPantsTable[i][0]) {
ss4CharacterData.skirtPants = SS3ToSS4SkirtPantsTable[i][1];
break;
}
}
}
// Hat
if (ss4CharacterData.hat != 0) {
for (i = 0; i < SS3ToSS4HatAmount; i++) {
if (ss4CharacterData.hat == SS3ToSS4HatTable[i][0]) {
ss4CharacterData.hat = SS3ToSS4HatTable[i][1];
break;
}
}
}
}
void writeSS4Character(u16 id) {