Files
pokepinballrs/include/constants/board/ruby_states.h
Retnuhytnuob d55c2eb214
Some checks failed
CI / build (push) Has been cancelled
Consts for Bonus Loop, remaining board element states (#263)
Helper macros:
* BoardIn/NotInActivityMobe
* Start Of Even Bonus loop & RayquazaCatchChanceTrip

States:
* Bonus stage loop
* Sapphire Shop Gate (plusle/minun) & index consts + shock wall anim state
* Spoink Launcher
* Makuhita
* Seedot
* Zigzagoon
* Pelipper
* Nuzleaf
2026-09-11 21:19:07 -05:00

109 lines
3.3 KiB
C

#ifndef GUARD_CONSTANTS_RUBY_STATES_H
#define GUARD_CONSTANTS_RUBY_STATES_H
#include "main_board.h"
enum RubyPondStates{
RUBY_POND_STATE_CHINCHOU_STAGGERED = 0,
RUBY_POND_STATE_CHINCHOU_CLOCKWISE = 1,
RUBY_POND_STATE_CHINCHOU_COUNTERCLOCKWISE = 2,
RUBY_POND_STATE_CHINCHOU_ROWS = 3,
RUBY_POND_STATE_LOTAD = 4,
RUBY_POND_STATE_CHINCHOU_SINGLE_CLOCKWISE = 5,
RUBY_POND_STATE_WHISCASH = 6
};
enum WhiscashStates{
WHISCASH_STATE_ARRIVAL = 0,
WHISCASH_STATE_SITTING = 1,
WHISCASH_STATE_ABSORB_ZONE_HIT = 2,
WHISCASH_STATE_ABSORBING = 3,
WHISCASH_STATE_TO_SPHEAL_BOARD = 4,
WHISCASH_STATE_INIT_RETURN_FROM_BONUS = 5,
WHISCASH_STATE_RISE_SPIT_LEAVE = 6,
WHISCASH_STATE_HIT = 7,
WHISCASH_STATE_ANGRY = 8,
WHISCASH_STATE_LEAVING = 9,
WHISCASH_STATE_CLEANUP = 10,
};
enum WhiscashFramesetIx{
WHISCASH_FRAME_SUBMERGED = 0,
WHISCASH_FRAME_SPLASH = 2,
WHISCASH_FRAME_SITTING = 4,
WHISCASH_FRAME_ABSORB_BALL_START = 6,
WHISCASH_FRAME_LEAVING = 9,
WHISCASH_FRAME_BALL_HELD_SUNK = 12,
WHISCASH_FRAME_DELIVER_BALL_START = 12,
WHISCASH_FRAME_EMERGING = 14,
WHISCASH_FRAME_SPITBALL = 20,
WHISCASH_FRAME_DELIVER_BALL_END = 30,
WHISCASH_FRAME_HIT = 31,
WHISCASH_FRAME_LEAVING_AFTER_HIT = 42,
WHISCASH_FRAME_GONE_AFTER_HIT = 45,
};
enum RubyCollisionTrigger{
RUBY_TRIGGER_MODE_START_BALL_LOCK = 1,
RUBY_TRIGGER_CHANGE_LAYER_UP = 2,
RUBY_TRIGGER_CHANGE_LAYER_DOWN = 3,
RUBY_TRIGGER_TARGET_SWITCH = 4,
RUBY_TRIGGER_BALL_LAUNCH_POSITION = 5,
RUBY_TRIGGER_CLOSE_LAUNCH_LANE = 6,
RUBY_TRIGGER_NUZLEAF = 7,
RUBY_TRIGGER_UPPER_LANE_ROLLOVER = 8,
RUBY_TRIGGER_LOWER_LANE_ROLLOVER = 9,
RUBY_TRIGGER_HOLE_ROLLOVER = 10,
RUBY_TRIGGER_CONDITIONAL_ACTIVATION = 11,
RUBY_TRIGGER_PIKA_CHARGE_SPINNER = 12,
RUBY_TRIGGER_CYNDAQUIL_LOW_POSITION = 13,
RUBY_TRIGGER_CYNDAQUIL_MID_POSITION = 14,
RUBY_TRIGGER_CYNDAQUIL_HIGH_POSITION = 15,
};
enum RubyCollisionZone{
RUBY_ZONE_LAUNCH_CHUTE = 0,
RUBY_ZONE_COIN_LANE_TOP = 1,
RUBY_ZONE_EVO_LANE_TOP = 2,
RUBY_ZONE_LEFT_BALL_UPGRADE_LANE = 3,
RUBY_ZONE_CENTER_BALL_UPGRADE_LANE = 4,
RUBY_ZONE_RIGHT_BALL_UPGRADE_LANE = 5,
RUBY_ZONE_GET_LANE_TOP = 6,
RUBY_ZONE_COIN_LANE_BOTTOM = 7,
RUBY_ZONE_EVO_LANE_BOTTOM = 8,
RUBY_ZONE_GET_LANE_BOTTOM = 9,
RUBY_ZONE_H_OUTLANE = 10,
RUBY_ZONE_O_INLANE = 11,
RUBY_ZONE_L_INLANE = 12,
RUBY_ZONE_E_OUTLANE = 13,
RUBY_ZONE_NUZLEAF_RAMP = 14,
};
enum MakuhitaState{
MAKUHITA_STATE_INACTIVE = 0,
MAKUHITA_STATE_NEUTRAL_READY = 1,
MAKUHITA_STATE_LEFT_PUNCH = 2,
MAKUHITA_STATE_READY_FOR_RIGHT_PUNCH = 3,
MAKUHITA_STATE_RIGHT_PUNCH = 4,
MAKUHITA_STATE_READY_FOR_LEFT_PUNCH = 5
};
enum NuzleafState{
NUZLEAF_STATE_IDLE_CYCLE = 0,
NUZLEAF_STATE_HIT_ON_RAMP = 1,
NUZLEAF_STATE_KNOCKED_BACK = 2,
NUZLEAF_STATE_HIT_AT_EDGE = 3,
NUZLEAF_STATE_TEETERING = 4,
NUZLEAF_STATE_HANGS_OVER_GAP = 5,
NUZLEAF_STATE_READY_TO_RESET = 6,
NUZLEAF_STATE_RESET_AT_LOWER_POSITION = 7
};
enum CyndaquilPositions{
CYNDAQUIL_POSITION_LOW_GUARD = 0,
CYNDAQUIL_POSITION_MID_GUARD = 1,
CYNDAQUIL_POSITION_HIGH_GUARD = 2,
CYNDAQUIL_POSITION_CAVE_ENTRANCE = 3,
CYNDAQUIL_POSITION_IN_CAVE = 4
};
#endif // GUARD_CONSTANTS_RUBY_STATES_H