#if defined(_CLANGD) #pragma once #include "feely_pona_unity.h" #endif enum FP_ProfileZone { FP_ProfileZone_FPUpdate = TELY_ProfileZone_Count, FP_ProfileZone_FPUpdate_EntityLoop, FP_ProfileZone_FPUpdate_PathFinding, FP_ProfileZone_FPUpdate_AStar, FP_ProfileZone_FPUpdate_AStarEnumerateCollidables, FP_ProfileZone_FPUpdate_AStarExpand, FP_ProfileZone_FPUpdate_AStarExploreNeighbours, FP_ProfileZone_FPUpdate_Attacks, FP_ProfileZone_FPRender, }; struct FP_Meters { Dqn_f32 meters; }; struct FP_GlobalAnimations { Dqn_Str8 airport_terry = DQN_STR8("airport_terry"); Dqn_Str8 airport_terry_plane = DQN_STR8("airport_terry_plane"); Dqn_Str8 catfish_attack_down = DQN_STR8("catfish_attack_down"); Dqn_Str8 catfish_attack_side = DQN_STR8("catfish_attack_side"); Dqn_Str8 catfish_attack_up = DQN_STR8("catfish_attack_up"); Dqn_Str8 catfish_death = DQN_STR8("catfish_death"); Dqn_Str8 catfish_walk_up = DQN_STR8("catfish_walk_up"); Dqn_Str8 catfish_walk_side = DQN_STR8("catfish_walk_side"); Dqn_Str8 catfish_walk_down = DQN_STR8("catfish_walk_down"); Dqn_Str8 clinger_attack_down = DQN_STR8("clinger_attack_down"); Dqn_Str8 clinger_attack_side = DQN_STR8("clinger_attack_side"); Dqn_Str8 clinger_attack_up = DQN_STR8("clinger_attack_up"); Dqn_Str8 clinger_death = DQN_STR8("clinger_death"); Dqn_Str8 clinger_walk_up = DQN_STR8("clinger_walk_up"); Dqn_Str8 clinger_walk_down = DQN_STR8("clinger_walk_down"); Dqn_Str8 church_terry_alive = DQN_STR8("church_terry_alive"); Dqn_Str8 church_terry_dark = DQN_STR8("church_terry_dark"); Dqn_Str8 club_terry_alive = DQN_STR8("club_terry_alive"); Dqn_Str8 club_terry_dark = DQN_STR8("club_terry_dark"); Dqn_Str8 end_screen = DQN_STR8("end_screen"); Dqn_Str8 heart = DQN_STR8("heart"); Dqn_Str8 heart_bleed = DQN_STR8("heart_bleed"); Dqn_Str8 icon_attack = DQN_STR8("icon_attack"); Dqn_Str8 icon_health = DQN_STR8("icon_health"); Dqn_Str8 icon_money = DQN_STR8("icon_money"); Dqn_Str8 icon_phone = DQN_STR8("icon_phone"); Dqn_Str8 icon_stamina = DQN_STR8("icon_stamina"); Dqn_Str8 intro_screen_arrows = DQN_STR8("intro_screen_arrows"); Dqn_Str8 intro_screen_subtitle = DQN_STR8("intro_screen_subtitle"); Dqn_Str8 intro_screen_terry = DQN_STR8("intro_screen_terry"); Dqn_Str8 intro_screen_title = DQN_STR8("intro_screen_title"); Dqn_Str8 intro_screen_perry_joins_the_fight = DQN_STR8("intro_screen_perry_joins_the_fight"); Dqn_Str8 kennel_terry = DQN_STR8("kennel_terry"); Dqn_Str8 map = DQN_STR8("map"); Dqn_Str8 map_billboard_attack = DQN_STR8("map_billboard_attack"); Dqn_Str8 map_billboard_dash = DQN_STR8("map_billboard_dash"); Dqn_Str8 map_billboard_monkey = DQN_STR8("map_billboard_monkey"); Dqn_Str8 map_billboard_range_attack = DQN_STR8("map_billboard_range_attack"); Dqn_Str8 map_billboard_strafe = DQN_STR8("map_billboard_strafe"); Dqn_Str8 map_billboard_build = DQN_STR8("map_billboard_build"); Dqn_Str8 map_police = DQN_STR8("map_police"); Dqn_Str8 merchant_button_a = DQN_STR8("merchant_button_a"); Dqn_Str8 merchant_button_b = DQN_STR8("merchant_button_b"); Dqn_Str8 merchant_button_x = DQN_STR8("merchant_button_x"); Dqn_Str8 merchant_button_y = DQN_STR8("merchant_button_y"); Dqn_Str8 merchant_graveyard = DQN_STR8("merchant_graveyard"); Dqn_Str8 merchant_graveyard_menu = DQN_STR8("merchant_graveyard_menu"); Dqn_Str8 merchant_gym = DQN_STR8("merchant_gym"); Dqn_Str8 merchant_gym_menu = DQN_STR8("merchant_gym_menu"); Dqn_Str8 merchant_phone_company = DQN_STR8("merchant_phone_company"); Dqn_Str8 merchant_phone_company_menu = DQN_STR8("merchant_phone_company_menu"); Dqn_Str8 merchant_terry = DQN_STR8("merchant_terry"); Dqn_Str8 merchant_terry_menu = DQN_STR8("merchant_terry_menu"); Dqn_Str8 particle_church_halo = DQN_STR8("particle_church_halo"); Dqn_Str8 particle_church_cross = DQN_STR8("particle_church_cross"); Dqn_Str8 particle_drunk = DQN_STR8("particle_drunk"); Dqn_Str8 particle_drunk_bottle = DQN_STR8("particle_drunk_bottle"); Dqn_Str8 particle_drunk_martini = DQN_STR8("particle_drunk_martini"); Dqn_Str8 particle_heart = DQN_STR8("particle_heart"); Dqn_Str8 particle_hit_1 = DQN_STR8("particle_hit_1"); Dqn_Str8 particle_hit_2 = DQN_STR8("particle_hit_2"); Dqn_Str8 particle_hit_3 = DQN_STR8("particle_hit_3"); Dqn_Str8 particle_purchase = DQN_STR8("particle_purchase"); Dqn_Str8 portal = DQN_STR8("portal"); Dqn_Str8 portal_break = DQN_STR8("portal_break"); Dqn_Str8 portal_monk = DQN_STR8("portal_monk"); Dqn_Str8 shadow_long_circle = DQN_STR8("shadow_long_circle"); Dqn_Str8 shadow_tight_circle = DQN_STR8("shadow_tight_circle"); Dqn_Str8 shrubbery_bush_1 = DQN_STR8("shrubbery_bush_1"); Dqn_Str8 shrubbery_bush_2 = DQN_STR8("shrubbery_bush_2"); Dqn_Str8 shrubbery_island_1 = DQN_STR8("shrubbery_island_1"); Dqn_Str8 shrubbery_island_2 = DQN_STR8("shrubbery_island_2"); Dqn_Str8 shrubbery_island_3 = DQN_STR8("shrubbery_island_3"); Dqn_Str8 smoochie_walk_up = DQN_STR8("smoochie_walk_up"); Dqn_Str8 smoochie_walk_down = DQN_STR8("smoochie_walk_down"); Dqn_Str8 smoochie_walk_left = DQN_STR8("smoochie_walk_left"); Dqn_Str8 smoochie_walk_right = DQN_STR8("smoochie_walk_right"); Dqn_Str8 smoochie_attack_down = DQN_STR8("smoochie_attack_down"); Dqn_Str8 smoochie_hurt_side = DQN_STR8("smoochie_hurt_side"); Dqn_Str8 smoochie_attack_heart = DQN_STR8("smoochie_attack_heart"); Dqn_Str8 smoochie_death = DQN_STR8("smoochie_death"); Dqn_Str8 terry_attack_up = DQN_STR8("terry_attack_up"); Dqn_Str8 terry_attack_side = DQN_STR8("terry_attack_side"); Dqn_Str8 terry_attack_down = DQN_STR8("terry_attack_down"); Dqn_Str8 terry_attack_phone_up = DQN_STR8("terry_attack_phone_up"); Dqn_Str8 terry_attack_phone_side = DQN_STR8("terry_attack_phone_side"); Dqn_Str8 terry_attack_phone_down = DQN_STR8("terry_attack_phone_down"); Dqn_Str8 terry_attack_phone_message = DQN_STR8("terry_attack_phone_message"); Dqn_Str8 terry_death = DQN_STR8("terry_death"); Dqn_Str8 terry_pat_dog = DQN_STR8("terry_pat_dog"); Dqn_Str8 terry_ghost = DQN_STR8("terry_ghost"); Dqn_Str8 terry_walk_idle = DQN_STR8("terry_walk_idle"); Dqn_Str8 terry_walk_up = DQN_STR8("terry_walk_up"); Dqn_Str8 terry_walk_down = DQN_STR8("terry_walk_down"); Dqn_Str8 terry_walk_left = DQN_STR8("terry_walk_left"); Dqn_Str8 terry_walk_right = DQN_STR8("terry_walk_right"); Dqn_Str8 perry_attack_up = DQN_STR8("perry_attack_up"); Dqn_Str8 perry_attack_side = DQN_STR8("perry_attack_side"); Dqn_Str8 perry_attack_down = DQN_STR8("perry_attack_down"); Dqn_Str8 perry_attack_phone_up = DQN_STR8("perry_attack_phone_up"); Dqn_Str8 perry_attack_phone_side = DQN_STR8("perry_attack_phone_side"); Dqn_Str8 perry_attack_phone_down = DQN_STR8("perry_attack_phone_down"); Dqn_Str8 perry_death = DQN_STR8("perry_death"); Dqn_Str8 perry_pat_dog = DQN_STR8("perry_pat_dog"); Dqn_Str8 perry_ghost = DQN_STR8("perry_ghost"); Dqn_Str8 perry_walk_idle = DQN_STR8("perry_walk_idle"); Dqn_Str8 perry_walk_up = DQN_STR8("perry_walk_up"); Dqn_Str8 perry_walk_down = DQN_STR8("perry_walk_down"); Dqn_Str8 perry_walk_right = DQN_STR8("perry_walk_right"); } g_anim_names; struct FP_ParticleDescriptor { Dqn_Str8 anim_name; Dqn_V2 pos; Dqn_V2 velocity; Dqn_V2 velocity_variance; Dqn_V4 colour_begin; Dqn_V4 colour_end; Dqn_usize duration_ms; }; struct FP_ListenForNewPlayerResult { bool yes; bool tutorial_requested; }; #if defined(DQN_PLATFORM_EMSCRIPTEN) #define FP_DEVELOPER_MODE 0 #else #define FP_DEVELOPER_MODE 1 #endif