No Description

custom_structs.h 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef B_NEW_STRUCT
  2. #define B_NEW_STRUCT
  3. #include <types.h>
  4. struct bank_affecting {
  5. u8 embargo : 3;
  6. u8 electrify : 1;
  7. u8 telekinesis: 3;
  8. u8 magnet_rise : 3;
  9. u8 heal_block : 3;
  10. u8 aqua_ring : 1;
  11. u8 powder : 1;
  12. u8 smacked_down : 1;
  13. u8 quashed : 1;
  14. u8 just_switched_in : 1;
  15. u8 ally_fainted_last_turn : 1;
  16. u8 miracle_eyed : 1;
  17. u8 spiky_shield : 1;
  18. u8 kings_shield : 1;
  19. u8 life_orbed : 1;
  20. u8 sheerforce_bonus : 1;
  21. u8 eaten_berry : 1;
  22. u8 sunshine_form : 1;
  23. u8 cherrim_transformed : 1;
  24. u8 gastro_acided : 1;
  25. u8 sky_drop_attacker : 1;
  26. u8 sky_drop_target : 1;
  27. u8 gem_boost : 1;
  28. u8 me_first : 1;
  29. u8 weakness2 : 1;
  30. u8 ate_bonus : 1;
  31. u8 entry_message : 1;
  32. u8 powertrick : 1;
  33. u8 kingsshield_damage : 1;
  34. u8 spikyshield_damage : 1;
  35. u8 grassyterrain_heal : 1;
  36. u8 item_used : 1;
  37. u8 slowstart_duration : 3;
  38. u8 aegislash_form : 2; //0 = not aegi, 1 = defensive, 2 = attacking
  39. u8 killer_bank : 2;
  40. u8 same_move_used : 3;
  41. u8 wrap_bank : 2;
  42. u8 move_failed : 1;
  43. u8 type3 : 5;
  44. u8 stat_lowered : 1;
  45. u8 roost : 3;
  46. u8 bugbite : 1;
  47. s8 stockpile_def_changes;
  48. s8 stockpile_sp_def_changes;
  49. u8 autonomize_uses;
  50. u16 wish_hp;
  51. };
  52. struct side_affecting {
  53. u8 sticky_web : 1;
  54. u8 sticky_web_done : 1;
  55. u8 toxic_spikes_psn : 1;
  56. u8 toxic_spikes_badpsn : 1;
  57. u8 toxic_spikes_done : 1;
  58. u8 stealth_rock : 1;
  59. u8 stealth_rock_done : 1;
  60. u8 lucky_chant : 3;
  61. u8 lucky_chant_bank : 2;
  62. u8 tailwind : 3;
  63. u8 tailwind_bank : 2;
  64. u8 wide_guard : 1;
  65. u8 quick_guard : 1;
  66. u8 crafty_shield : 1;
  67. u8 combo_waterpledge : 1;
  68. u8 combo_firepledge : 1;
  69. u8 combo_grasspledge : 1;
  70. u8 swamp_spd_halving : 3;
  71. u8 sea_of_fire : 3;
  72. u8 rainbow : 3;
  73. u8 mat_block : 1;
  74. u8 lunardance : 1;
  75. u8 lunardance_done : 1;
  76. u8 echo_voice_counter : 3;
  77. u8 mega_evo_state : 2; //0 = neither mega evolved nor triggered, 1 = triggered to mega evolve(if set, should reset next turn in case poke didn't mega evolve), 2 = mega evolved
  78. };
  79. struct field_affecting {
  80. u8 trick_room : 3;
  81. u8 wonder_room : 3;
  82. u8 magic_room : 3;
  83. u8 grassy_terrain : 3;
  84. u8 electic_terrain : 3;
  85. u8 misty_terrain : 3;
  86. u8 ion_deluge : 3;
  87. u8 gravity : 3;
  88. u8 round_chosen : 1;
  89. u8 fairy_lock : 1;
  90. };
  91. struct various {
  92. u8 eaten_berry_player : 6;
  93. u8 eaten_berry_opponent : 6;
  94. u8 active_bank : 2;
  95. u8 inverse_battle : 1;
  96. u8 magicbounce : 1;
  97. u8 stormdrain : 1;
  98. u16 var1;
  99. u16 var2;
  100. u16 recently_used_item;
  101. u16 previous_move;
  102. };
  103. struct custom_battle_struct{
  104. struct bank_affecting bank_affecting[4];
  105. struct side_affecting side_affecting[2];
  106. struct field_affecting field_affecting;
  107. struct various various;
  108. };
  109. struct custom_battle_struct_ptr{
  110. struct custom_battle_struct *ptr;
  111. };
  112. extern struct custom_battle_struct_ptr custom_battle_elements;
  113. #endif