mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
148 lines
4.0 KiB
C
148 lines
4.0 KiB
C
#ifndef AC_SET_OVL_INSECT_H
|
|
#define AC_SET_OVL_INSECT_H
|
|
|
|
#include "types.h"
|
|
#include "ac_set_manager.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define aSOI_TERM_TRANSITION_MAX_DAYS 5
|
|
|
|
#define aSOI_INSECT_TYPE_INVALID -1
|
|
|
|
enum insect_type {
|
|
aSOI_INSECT_TYPE_COMMON_BUTTERFLY,
|
|
aSOI_INSECT_TYPE_YELLOW_BUTTERFLY,
|
|
aSOI_INSECT_TYPE_TIGER_BUTTERFLY,
|
|
aSOI_INSECT_TYPE_PURPLE_BUTTERFLY,
|
|
aSOI_INSECT_TYPE_ROBUST_CICADA,
|
|
aSOI_INSECT_TYPE_WALKER_CICADA,
|
|
aSOI_INSECT_TYPE_EVENING_CICADA,
|
|
aSOI_INSECT_TYPE_BROWN_CICADA,
|
|
aSOI_INSECT_TYPE_BEE,
|
|
aSOI_INSECT_TYPE_COMMON_DRAGONFLY,
|
|
aSOI_INSECT_TYPE_RED_DRAGONFLY,
|
|
aSOI_INSECT_TYPE_DARNER_DRAGONFLY,
|
|
aSOI_INSECT_TYPE_BANDED_DRAGONFLY,
|
|
aSOI_INSECT_TYPE_LONG_LOCUST,
|
|
aSOI_INSECT_TYPE_MIGRATORY_LOCUST,
|
|
aSOI_INSECT_TYPE_CRICKET,
|
|
aSOI_INSECT_TYPE_GRASSHOPPER,
|
|
aSOI_INSECT_TYPE_BELL_CRICKET,
|
|
aSOI_INSECT_TYPE_PINE_CRICKET,
|
|
aSOI_INSECT_TYPE_DRONE_BEETLE,
|
|
aSOI_INSECT_TYPE_DYNASTID_BEETLE,
|
|
aSOI_INSECT_TYPE_FLAT_STAG_BEETLE,
|
|
aSOI_INSECT_TYPE_JEWEL_BEETLE,
|
|
aSOI_INSECT_TYPE_LONGHORN_BEETLE,
|
|
aSOI_INSECT_TYPE_LADYBUG,
|
|
aSOI_INSECT_TYPE_SPOTTED_LADYBUG,
|
|
aSOI_INSECT_TYPE_MANTIS,
|
|
aSOI_INSECT_TYPE_FIREFLY,
|
|
aSOI_INSECT_TYPE_COCKROACH,
|
|
aSOI_INSECT_TYPE_SAW_STAG_BEETLE,
|
|
aSOI_INSECT_TYPE_MOUNTAIN_BEETLE,
|
|
aSOI_INSECT_TYPE_GIANT_BEETLE,
|
|
aSOI_INSECT_TYPE_SNAIL,
|
|
aSOI_INSECT_TYPE_MOLE_CRICKET,
|
|
aSOI_INSECT_TYPE_POND_SKATER,
|
|
aSOI_INSECT_TYPE_BAGWORM,
|
|
aSOI_INSECT_TYPE_PILL_BUG,
|
|
aSOI_INSECT_TYPE_SPIDER,
|
|
aSOI_INSECT_TYPE_ANT,
|
|
aSOI_INSECT_TYPE_MOSQUITO,
|
|
aSOI_INSECT_TYPE_NUM,
|
|
|
|
aSOI_INSECT_TYPE_SPIRIT = aSOI_INSECT_TYPE_NUM,
|
|
aSOI_INSECT_TYPE_NONE,
|
|
aSOI_INSECT_TYPE_EXTENDED_NUM
|
|
};
|
|
|
|
#define aSOI_SPAWN_AREA_INVALID -1
|
|
|
|
enum insect_spawn_area {
|
|
aSOI_SPAWN_AREA_ON_TREE,
|
|
aSOI_SPAWN_AREA_ON_FLOWER,
|
|
aSOI_SPAWN_AREA_RAINING_ON_FLOWER,
|
|
aSOI_SPAWN_AREA_FLYING,
|
|
aSOI_SPAWN_AREA_ON_GROUND,
|
|
aSOI_SPAWN_AREA_IN_BUSH,
|
|
aSOI_SPAWN_AREA_FLYING_NEAR_WATER,
|
|
aSOI_SPAWN_AREA_ON_WATER,
|
|
aSOI_SPAWN_AREA_ON_CANDY,
|
|
aSOI_SPAWN_AREA_ON_TRASH,
|
|
aSOI_SPAWN_AREA_UNDER_ROCK,
|
|
aSOI_SPAWN_AREA_UNDERGROUND,
|
|
aSOI_SPAWN_AREA_FLYING_NEAR_FLOWERS_OR_AROUND, /* this prefers flowers, but will default to "FLYING" if no flowers
|
|
are in the acre */
|
|
aSOI_SPAWN_AREA_NOTHING,
|
|
|
|
aSOI_SPAWN_AREA_NUM
|
|
};
|
|
|
|
enum insect_spawn_type {
|
|
aSOI_SPAWN_TYPE_NONE, /* none/unused? */
|
|
aSOI_SPAWN_TYPE_TOWN, /* pull from town spawns */
|
|
aSOI_SPAWN_TYPE_ISLAND, /* pull from island spawns */
|
|
aSOI_SPAWN_TYPE_SPIRIT, /* pull from town spawns but force spirit if Wisp is active */
|
|
|
|
aSOI_SPAWN_TYPE_NUM
|
|
};
|
|
|
|
enum insect_spawn_category {
|
|
aSOI_SPAWN_CATEGORY_FG_ITEM_RANGE,
|
|
aSOI_SPAWN_CATEGORY_UT_ATTRIBUTE,
|
|
aSOI_SPAWN_CATEGORY_TREE,
|
|
aSOI_SPAWN_CATEGORY_UT_ATTRIBUTE_AND_FG_ITEM_RANGE,
|
|
|
|
aSOI_SPAWN_CATEGORY_NUM
|
|
};
|
|
|
|
#define aSOI_SPAWN_NORMAL 0
|
|
#define aSOI_SPAWN_TREE 4
|
|
#define aSOI_SPAWN_ITEM 6
|
|
|
|
/**
|
|
* Insect term periods:
|
|
* TERM0: 11PM-4AM (5 hours)
|
|
* TERM1: 4AM-8AM (4 hours)
|
|
* TERM2: 8AM-4PM (8 hours)
|
|
* TERM3: 4PM-5PM (1 hour)
|
|
* TERM4: 5PM-7PM (2 hours)
|
|
* TERM5: 7PM-11PM (4 hours)
|
|
**/
|
|
|
|
#define aSOI_TERM0_START_HR 11 + 12 // 11:00PM
|
|
#define aSOI_TERM0_END_HR 3 // 03:59AM
|
|
#define aSOI_TERM1_START_HR 4 // 04:00AM
|
|
#define aSOI_TERM1_END_HR 7 // 07:59AM
|
|
#define aSOI_TERM2_START_HR 8 // 08:00AM
|
|
#define aSOI_TERM2_END_HR 3 + 12 // 03:59PM
|
|
#define aSOI_TERM3_START_HR 4 + 12 // 04:00PM
|
|
#define aSOI_TERM3_END_HR 4 + 12 // 04:59PM
|
|
#define aSOI_TERM4_START_HR 5 + 12 // 05:00PM
|
|
#define aSOI_TERM4_END_HR 6 + 12 // 06:59PM
|
|
#define aSOI_TERM5_START_HR 7 + 12 // 07:00PM
|
|
#define aSOI_TERM5_END_HR 10 + 12 // 10:59PM
|
|
|
|
enum insect_term {
|
|
aSOI_TERM0,
|
|
aSOI_TERM1,
|
|
aSOI_TERM2,
|
|
aSOI_TERM3,
|
|
aSOI_TERM4,
|
|
aSOI_TERM5,
|
|
|
|
aSOI_TERM_NUM
|
|
};
|
|
|
|
extern int aSOI_insect_set(SET_MANAGER* set_manager, GAME_PLAY* play);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|