mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-06 07:27:47 +01:00
commit
eb4bcc89cd
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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++)
|
||||
{
|
||||
|
@ -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)
|
||||
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:
|
||||
|
@ -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--;
|
||||
// Needed to match, feel free to remove.
|
||||
boxId++, boxId--;
|
||||
monId++, monId--;
|
||||
|
||||
boxMon = GetBoxedMonPtr(boxId, monId);
|
||||
gender = GetBoxMonGender(boxMon);
|
||||
level = GetLevelFromBoxMonExp(boxMon);
|
||||
}
|
||||
|
||||
if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
|
||||
gender = MON_GENDERLESS;
|
||||
|
||||
for (str = dst; *str != EOS; str++)
|
||||
;
|
||||
|
||||
*(str++) = EXT_CTRL_CODE_BEGIN;
|
||||
*(str++) = EXT_CTRL_CODE_SKIP;
|
||||
*(str++) = 60;
|
||||
|
||||
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_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;
|
||||
boxMon = GetBoxedMonPtr(boxId, monId);
|
||||
gender = GetBoxMonGender(boxMon);
|
||||
level = GetLevelFromBoxMonExp(boxMon);
|
||||
}
|
||||
|
||||
if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
|
||||
gender = MON_GENDERLESS;
|
||||
|
||||
for (str = dst; *str != EOS; str++)
|
||||
;
|
||||
|
||||
*(str++) = EXT_CTRL_CODE_BEGIN;
|
||||
*(str++) = EXT_CTRL_CODE_SKIP;
|
||||
*(str++) = 60;
|
||||
|
||||
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_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
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user