diff options
-rw-r--r-- | data/battle_ai_scripts.s | 26 | ||||
-rw-r--r-- | src/battle_anim_water.c | 85 |
2 files changed, 19 insertions, 92 deletions
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 18eaf8040..e33ba431d 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -12,16 +12,16 @@ .align 2 gBattleAI_ScriptsTable:: @ 82DBEF8 - .4byte AI_CheckBadMove - .4byte AI_TryToFaint - .4byte AI_CheckViability - .4byte AI_SetupFirstTurn - .4byte AI_Risky - .4byte AI_PreferStrongestMove - .4byte AI_PreferBatonPass - .4byte AI_DoubleBattle - .4byte AI_HPAware - .4byte AI_Unknown + .4byte AI_CheckBadMove @ AI_SCRIPT_CHECK_BAD_MOVE + .4byte AI_TryToFaint @ AI_SCRIPT_TRY_TO_FAINT + .4byte AI_CheckViability @ AI_SCRIPT_CHECK_VIABILITY + .4byte AI_SetupFirstTurn @ AI_SCRIPT_SETUP_FIRST_TURN + .4byte AI_Risky @ AI_SCRIPT_RISKY + .4byte AI_PreferStrongestMove @ AI_SCRIPT_PREFER_STRONGEST_MOVE + .4byte AI_PreferBatonPass @ AI_SCRIPT_PREFER_BATON_PASS + .4byte AI_DoubleBattle @ AI_SCRIPT_DOUBLE_BATTLE + .4byte AI_HPAware @ AI_SCRIPT_HP_AWARE + .4byte AI_Unknown @ AI_SCRIPT_UNKNOWN .4byte AI_Ret .4byte AI_Ret .4byte AI_Ret @@ -41,9 +41,9 @@ gBattleAI_ScriptsTable:: @ 82DBEF8 .4byte AI_Ret .4byte AI_Ret .4byte AI_Ret - .4byte AI_Roaming - .4byte AI_Safari - .4byte AI_FirstBattle + .4byte AI_Roaming @ AI_SCRIPT_ROAMING + .4byte AI_Safari @ AI_SCRIPT_SAFARI + .4byte AI_FirstBattle @ AI_SCRIPT_FIRST_BATTLE AI_CheckBadMove: if_target_is_ally AI_Ret diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 5810b6bdc..88af2cdec 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -624,98 +624,24 @@ void AnimTask_RotateAuroraRingColors(u8 taskId) gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step; } -#ifdef NONMATCHING static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) { int i; u16 palIndex; - u16 *palPtr1; - u16 *palPtr2; - u16 rgbBuffer; if (++gTasks[taskId].data[10] == 3) { + u16 tempPlt; gTasks[taskId].data[10] = 0; palIndex = gTasks[taskId].data[2] + 1; - palPtr1 = &gPlttBufferFaded[palIndex]; - rgbBuffer = *palPtr1; - palPtr2 = &palPtr1[1]; - for (i = 0; i < 7; i++) - palPtr1[i] = palPtr2[i]; - gPlttBufferFaded[palIndex + 7] = rgbBuffer; + tempPlt = gPlttBufferFaded[palIndex]; + for (i = 1; i < 8; i++) + gPlttBufferFaded[palIndex + i - 1] = gPlttBufferFaded[palIndex + i]; + gPlttBufferFaded[palIndex + 7] = tempPlt; } if (++gTasks[taskId].data[11] == gTasks[taskId].data[0]) DestroyAnimVisualTask(taskId); } -#else -NAKED -static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - ldr r1, =gTasks\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - adds r2, r0, r1\n\ - ldrh r0, [r2, 0x1C]\n\ - adds r0, 0x1\n\ - strh r0, [r2, 0x1C]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - mov r12, r1\n\ - cmp r0, 0x3\n\ - bne _081075BE\n\ - movs r0, 0\n\ - strh r0, [r2, 0x1C]\n\ - ldrh r0, [r2, 0xC]\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldr r1, =gPlttBufferFaded\n\ - lsls r0, r5, 1\n\ - adds r0, r1\n\ - ldrh r6, [r0]\n\ - adds r7, r1, 0\n\ - adds r3, r0, 0x2\n\ - movs r1, 0x6\n\ - adds r2, r0, 0\n\ -_081075A8:\n\ - ldrh r0, [r3]\n\ - strh r0, [r2]\n\ - adds r3, 0x2\n\ - adds r2, 0x2\n\ - subs r1, 0x1\n\ - cmp r1, 0\n\ - bge _081075A8\n\ - adds r0, r5, 0x7\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - strh r6, [r0]\n\ -_081075BE:\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - add r0, r12\n\ - ldrh r1, [r0, 0x1E]\n\ - adds r1, 0x1\n\ - strh r1, [r0, 0x1E]\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - movs r2, 0x8\n\ - ldrsh r0, [r0, r2]\n\ - cmp r1, r0\n\ - bne _081075DE\n\ - adds r0, r4, 0\n\ - bl DestroyAnimVisualTask\n\ -_081075DE:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif // For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) static void AnimToTargetInSinWave(struct Sprite *sprite) @@ -822,6 +748,7 @@ static void AnimHydroCannonBeam(struct Sprite *sprite) if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) gBattleAnimArgs[0] *= -1; } + if ((gBattleAnimArgs[5] & 0xFF00) == 0) animType = TRUE; else |