summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-08-28 15:54:15 -0400
committerGitHub <noreply@github.com>2020-08-28 15:54:15 -0400
commiteb4bcc89cd149ae1a5e43f2aef0dddf5a69bb23c (patch)
tree7f1edf6037ad77a2bcb10a237fac0e3348591bfc
parent1e6655b2987922d0b8d6a4833549bc060b764968 (diff)
parenta04b0ff487dfdf97d3dbe61602bc7bc914c6dbb2 (diff)
Merge pull request #1155 from PokeCodec/zero
Fix "stupid" fakematch
-rw-r--r--src/battle_gfx_sfx_util.c13
-rw-r--r--src/battle_main.c69
-rw-r--r--src/event_object_movement.c79
-rw-r--r--src/link_rfu_2.c78
-rw-r--r--src/menu_specialized.c119
-rw-r--r--src/script.c6
6 files changed, 155 insertions, 209 deletions
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 50a5f8ad5..1638e2f57 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -1014,15 +1014,12 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
palOffset = (battlerId * 16) + 0x100;
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
}
- else
+ else if (!IsContest())
{
- if (!IsContest())
- {
- if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
- else
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
- }
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
+ else
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
}
}
diff --git a/src/battle_main.c b/src/battle_main.c
index 0ea19dfaa..03e958c61 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -4851,40 +4851,38 @@ static void SetActionsAndBattlersTurnOrder(void)
gBattleStruct->focusPunchBattlerId = 0;
return;
}
- else
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
{
- if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
- {
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
- }
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
}
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ }
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ {
+ if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
{
- if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
- {
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
- }
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
}
- for (i = 0; i < gBattlersCount - 1; i++)
+ }
+ for (i = 0; i < gBattlersCount - 1; i++)
+ {
+ for (j = i + 1; j < gBattlersCount; j++)
{
- for (j = i + 1; j < gBattlersCount; j++)
+ u8 battler1 = gBattlerByTurnOrder[i];
+ u8 battler2 = gBattlerByTurnOrder[j];
+
+ if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != B_ACTION_SWITCH
+ && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
{
- u8 battler1 = gBattlerByTurnOrder[i];
- u8 battler2 = gBattlerByTurnOrder[j];
- if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[i] != B_ACTION_SWITCH
- && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
- {
- if (GetWhoStrikesFirst(battler1, battler2, FALSE))
- SwapTurnOrder(i, j);
- }
+ if (GetWhoStrikesFirst(battler1, battler2, FALSE))
+ SwapTurnOrder(i, j);
}
}
}
@@ -4962,12 +4960,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
}
TryClearRageStatuses();
- gCurrentTurnActionNumber = 0;
-{
- // something stupid needed to match
- u8 zero;
- gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)];
-}
+ gCurrentTurnActionNumber = 0; //See comment underneath
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleMainFunc = RunTurnActionsFunctions;
@@ -4990,13 +4984,10 @@ static void RunTurnActionsFunctions(void)
gHitMarker &= ~(HITMARKER_x100000);
gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
}
- else
+ else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
{
- if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
- {
- gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
- gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
- }
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
}
}
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index a076a2a22..72de880c8 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -8216,15 +8216,13 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent)
{
return TRUE;
}
- else
- {
- objectEvent->frozen = 1;
- objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
- objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
- gSprites[objectEvent->spriteId].animPaused = 1;
- gSprites[objectEvent->spriteId].affineAnimPaused = 1;
- return FALSE;
- }
+
+ objectEvent->frozen = 1;
+ objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
+ objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
+ gSprites[objectEvent->spriteId].animPaused = 1;
+ gSprites[objectEvent->spriteId].affineAnimPaused = 1;
+ return FALSE;
}
void FreezeObjectEvents(void)
@@ -8397,8 +8395,8 @@ bool8 sub_80976EC(struct Sprite *sprite)
if (sprite->data[5] > 15)
return TRUE;
- else
- return FALSE;
+
+ return FALSE;
}
static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
@@ -8478,15 +8476,15 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite)
return finished;
}
-static const s8 gUnknown_0850E802[] = {
+static const s8 gUnknown_0850E802[16] = {
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
};
-static const s8 gUnknown_0850E812[] = {
+static const s8 gUnknown_0850E812[16] = {
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
};
-static const s8 gUnknown_0850E822[] = {
+static const s8 gUnknown_0850E822[16] = {
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
};
@@ -8509,23 +8507,11 @@ void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
sprite->data[6] = 0;
}
-static const s16 gUnknown_0850E840[] = {
- 16, 16, 32,
-};
-
-static const u8 gUnknown_0850E846[] = {
- 0, 0, 1,
-};
-
u8 sub_809785C(struct Sprite *sprite)
{
- s16 v5[3];
- u8 v6[3];
- u8 v2;
-
- memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy
- memcpy(v6, gUnknown_0850E846, 3);
- v2 = 0;
+ s16 v5[] = {16, 16, 32};
+ u8 v6[] = {0, 0, 1};
+ u8 v2 = 0;
if (sprite->data[4])
Step1(sprite, sprite->data[3]);
@@ -8546,23 +8532,11 @@ u8 sub_809785C(struct Sprite *sprite)
return v2;
}
-static const s16 gUnknown_0850E84A[] = {
- 32, 32, 64,
-};
-
-static const u8 gUnknown_0850E850[] = {
- 1, 1, 2,
-};
-
u8 sub_80978E4(struct Sprite *sprite)
{
- s16 v5[3];
- u8 v6[3];
- u8 v2;
-
- memcpy(v5, gUnknown_0850E84A, 6);
- memcpy(v6, gUnknown_0850E850, 3);
- v2 = 0;
+ s16 v5[] = {32, 32, 64};
+ u8 v6[] = {1, 1, 2};
+ u8 v2 = 0;
if (sprite->data[4] && !(sprite->data[6] & 1))
Step1(sprite, sprite->data[3]);
@@ -8590,12 +8564,9 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer)
static bool8 WaitForMovementDelay(struct Sprite *sprite)
{
- sprite->data[3]--;
-
- if (sprite->data[3] == 0)
+ if (--sprite->data[3] == 0)
return TRUE;
- else
- return FALSE;
+ return FALSE;
}
void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
@@ -8609,8 +8580,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite)
{
if (sprite->animEnded)
return TRUE;
- else
- return FALSE;
+ return FALSE;
}
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
@@ -8789,14 +8759,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite)
{
switch(sprite->tAnimNum)
{
+ case 0:
+ break;
case UNION_ROOM_SPAWN_IN:
MoveUnionRoomObjectDown(sprite);
break;
case UNION_ROOM_SPAWN_OUT:
MoveUnionRoomObjectUp(sprite);
break;
- case 0:
- break;
default:
sprite->tAnimNum = 0;
break;
@@ -8877,8 +8847,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
}
else
{
- u8 i;
- u8 firstFreeSlot;
+ u8 i, firstFreeSlot;
bool32 found;
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
{
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index 3372aa766..a8ead95d6 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -876,8 +876,7 @@ static void sub_800F498(u16 *a0, u8 *a1)
static bool32 RfuProcessEnqueuedRecvBlock(void)
{
- u8 i;
- u8 j;
+ u8 i, j;
u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))];
u8 sp48[2 * (CMD_LENGTH - 1)];
u8 status;
@@ -923,7 +922,7 @@ static bool32 RfuProcessEnqueuedRecvBlock(void)
static void HandleSendFailure(u8 unused, u32 flags)
{
- s32 i, j;
+ s32 i, j, temp;
const u8 *r10 = Rfu.sendBlock.payload;
for (i = 0; i < Rfu.sendBlock.count; i++)
@@ -933,14 +932,15 @@ static void HandleSendFailure(u8 unused, u32 flags)
sResendBlock16[0] = RFU_COMMAND_0x8900 | i;
for (j = 0; j < 7; j++)
{
- sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0];
+ temp = j << 1;
+ sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp];
}
+
for (j = 0; j < 7; j++)
{
- sResendBlock8[2 * j + 1] = sResendBlock16[j] >> 8;
- sResendBlock8[2 * j + 0] = sResendBlock16[j];
-
- j++;j--; // Needed to match;
+ temp = j << 1;
+ sResendBlock8[temp + 1] = sResendBlock16[j] >> 8;
+ sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff;
}
RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8);
Rfu.sendBlock.failedFlags |= (1 << i);
@@ -1024,8 +1024,7 @@ void sub_800F850(void)
static void RfuHandleReceiveCommand(u8 unused)
{
- u16 i;
- u16 j;
+ u16 i, j;
for (i = 0; i < MAX_RFU_PLAYERS; i++)
{
@@ -1039,7 +1038,7 @@ static void RfuHandleReceiveCommand(u8 unused)
if (gRfuLinkStatus->parentChild == MODE_CHILD)
{
Rfu.playerCount = gRecvCmds[i][1];
- Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2));
+ Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2]));
}
break;
case RFU_COMMAND_0x8800:
@@ -1238,10 +1237,9 @@ void sub_800FE50(void *a0)
bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
{
bool8 r4;
- if (Rfu.callback != NULL)
- return FALSE;
- if (gSendCmd[0] != 0)
+ if (Rfu.callback != NULL || gSendCmd[0] != 0)
return FALSE;
+
if (Rfu.sendBlock.sending)
{
sRfuDebug.unk_83++;
@@ -1419,16 +1417,12 @@ void Rfu_SetCloseLinkCallback(void)
static void SendReadyExitStandbyUntilAllReady(void)
{
- u8 playerCount;
- u8 i;
+ u8 i, playerCount;
- if (GetMultiplayerId() != 0)
+ if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
{
- if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
- {
- RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
- Rfu.resendExitStandbyTimer = 0;
- }
+ RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
+ Rfu.resendExitStandbyTimer = 0;
}
playerCount = GetLinkPlayerCount();
for (i = 0; i < playerCount; i++)
@@ -1458,8 +1452,7 @@ static void LinkLeaderReadyToExitStandby(void)
// RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll
static void Rfu_LinkStandby(void)
{
- u8 i;
- u8 playerCount;
+ u8 i, playerCount;
if (GetMultiplayerId() != 0)
{
@@ -1555,28 +1548,28 @@ static bool8 CheckForLeavingGroupMembers(void)
bool8 memberLeft = FALSE;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK
- || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO)
+ if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK
+ || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO)
{
- if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
- || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
- {
- if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
- {
- Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
- Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
- rfu_clearSlot(TYPE_NI_RECV, i);
- rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
- memberLeft = TRUE;
- }
+ continue;
+ }
- }
- else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
- rfu_clearSlot(TYPE_NI_RECV, i);
+ if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
+ || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
+ {
+ if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
{
-
+ Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
+ Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
+ rfu_clearSlot(TYPE_NI_RECV, i);
+ rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
+ memberLeft = TRUE;
}
}
+ else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
+ {
+ rfu_clearSlot(TYPE_NI_RECV, i);
+ }
}
return memberLeft;
}
@@ -2097,8 +2090,7 @@ static void sub_80111FC(void)
static void sub_801120C(u8 msg, u8 paramCount)
{
- u8 i;
- u8 disconnectFlag = 0;
+ u8 i, disconnectFlag = 0;
switch (msg)
{
case LMAN_MSG_INITIALIZE_COMPLETED:
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index a99c5c9d0..d402ecb51 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -894,76 +894,73 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId)
{
return StringCopyPadded(dst, gText_EggNickname, 0, 12);
}
+ GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst);
+ StringGetEnd10(dst);
+ species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL);
+ if (boxId == TOTAL_BOXES_COUNT) // Party mon.
+ {
+ level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ gender = GetMonGender(&gPlayerParty[monId]);
+ }
else
{
- GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst);
- StringGetEnd10(dst);
- species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL);
- if (boxId == TOTAL_BOXES_COUNT) // Party mon.
- {
- level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
- gender = GetMonGender(&gPlayerParty[monId]);
- }
- else
- {
- // Needed to match, feel free to remove.
- boxId++;boxId--;
- monId++;monId--;
-
- boxMon = GetBoxedMonPtr(boxId, monId);
- gender = GetBoxMonGender(boxMon);
- level = GetLevelFromBoxMonExp(boxMon);
- }
+ // Needed to match, feel free to remove.
+ boxId++, boxId--;
+ monId++, monId--;
- if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
- gender = MON_GENDERLESS;
+ boxMon = GetBoxedMonPtr(boxId, monId);
+ gender = GetBoxMonGender(boxMon);
+ level = GetLevelFromBoxMonExp(boxMon);
+ }
- for (str = dst; *str != EOS; str++)
- ;
+ if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
+ gender = MON_GENDERLESS;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SKIP;
- *(str++) = 60;
+ for (str = dst; *str != EOS; str++)
+ ;
- switch (gender)
- {
- default:
- *(str++) = CHAR_SPACE;
- break;
- case MON_MALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_RED;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_RED;
- *(str++) = CHAR_MALE;
- break;
- case MON_FEMALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_GREEN;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_GREEN;
- *(str++) = CHAR_FEMALE;
- break;
- }
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SKIP;
+ *(str++) = 60;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
- *(str++) = TEXT_COLOR_BLUE;
- *(str++) = TEXT_COLOR_TRANSPARENT;
- *(str++) = TEXT_COLOR_LIGHT_BLUE;
- *(str++) = CHAR_SLASH;
- *(str++) = CHAR_EXTRA_SYMBOL;
- *(str++) = CHAR_LV_2;
- str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ switch (gender)
+ {
+ default:
*(str++) = CHAR_SPACE;
- *str = EOS;
-
- return str;
+ break;
+ case MON_MALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_RED;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_RED;
+ *(str++) = CHAR_MALE;
+ break;
+ case MON_FEMALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_GREEN;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_GREEN;
+ *(str++) = CHAR_FEMALE;
+ break;
}
+
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
+ *(str++) = TEXT_COLOR_BLUE;
+ *(str++) = TEXT_COLOR_TRANSPARENT;
+ *(str++) = TEXT_COLOR_LIGHT_BLUE;
+ *(str++) = CHAR_SLASH;
+ *(str++) = CHAR_EXTRA_SYMBOL;
+ *(str++) = CHAR_LV_2;
+ str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ *(str++) = CHAR_SPACE;
+ *str = EOS;
+
+ return str;
}
// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces
diff --git a/src/script.c b/src/script.c
index 9ba1a7429..889c25765 100644
--- a/src/script.c
+++ b/src/script.c
@@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable
s32 i;
ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->scriptPtr = NULL;
ctx->stackDepth = 0;
- ctx->nativePtr = 0;
+ ctx->nativePtr = NULL;
ctx->cmdTable = cmdTable;
ctx->cmdTableEnd = cmdTableEnd;
@@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void))
void StopScript(struct ScriptContext *ctx)
{
ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->scriptPtr = NULL;
}
bool8 RunScriptCommand(struct ScriptContext *ctx)