Ingen beskrivning

battle_bg_hook.s 687B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <config.h>
  2. .align 2
  3. .thumb
  4. .text
  5. .global battle_bg_hook
  6. battle_bg_hook:
  7. ldr r0, =npc_states
  8. ldrb r0, [r0, #0x1E]
  9. cmp r0, #0x10
  10. beq sea_type_bg
  11. cmp r0, #0x11
  12. beq sea_type_bg
  13. cmp r0, #0x12
  14. beq sea_type_bg
  15. cmp r0, #0x15
  16. beq sea_type_bg
  17. normal_type_bg:
  18. ldrh r0, =NORMAL_VAR
  19. b custom_load_attempt
  20. sea_type_bg:
  21. ldrh r0, =SEA_VAR
  22. custom_load_attempt:
  23. ldr r1, =var_access
  24. bl bxr1
  25. ldrh r0, [r0]
  26. cmp r0, #0
  27. beq normal_end
  28. sub r0, #1
  29. b end
  30. ldr r1, =var_access
  31. bl bxr1
  32. ldrh r0, [r0]
  33. normal_end:
  34. ldr r0, =get_bs_elem_env_index
  35. bl bxr0
  36. lsl r0, #0x18
  37. lsr r0, #0x18
  38. end:
  39. ldr r1, =load_battle_screen_elements_1
  40. bl bxr1
  41. pop {r0}
  42. bx r0
  43. bxr1:
  44. bx r1
  45. bxr0:
  46. bx r0