#pragma once #define INCLUDE_ANIMATION_DATA extern safemap<std::string,Animate2D::FrameSequence>ANIMATION_DATA; #define INCLUDE_MONSTER_LIST extern std::vector<Monster>MONSTER_LIST; #define INCLUDE_SPAWNER_LIST extern std::vector<MonsterSpawner>SPAWNER_LIST; #define INCLUDE_DAMAGENUMBER_LIST extern std::vector<std::shared_ptr<DamageNumber>>DAMAGENUMBER_LIST; #define INCLUDE_game extern Crawler*game; #define INCLUDE_MONSTER_DATA extern std::map<int,MonsterData>MONSTER_DATA; #define INCLUDE_MONSTER_NAME_DATA extern safemap<std::string,MonsterData*>MONSTER_NAME_DATA; #define INCLUDE_BULLET_LIST extern std::vector<std::unique_ptr<Bullet>>BULLET_LIST; #define INCLUDE_EMITTER_LIST extern std::vector<std::unique_ptr<Emitter>>EMITTER_LIST; #define INCLUDE_DATA extern utils::datafile DATA; #define INCLUDE_STRATEGY_DATA extern safemap<std::string,int>STRATEGY_DATA; #define INCLUDE_STRATEGY_ID_DATA extern safemap<std::string,int>STRATEGY_ID_DATA; #define INCLUDE_TILE_ANIMATION_DATA extern std::map<int,std::vector<std::pair<int,float>>>TILE_ANIMATION_DATA; #define INCLUDE_GFX extern safemap<std::string,Renderable>GFX; #define INCLUDE_ITEM_DATA extern safemap<std::string,ItemInfo>ITEM_DATA; #define INCLUDE_ITEM_CATEGORIES extern safemap<std::string,std::set<std::string>>ITEM_CATEGORIES; #define DO_NOTHING [](MenuFuncData data){return true;} #define INCLUDE_LEVEL_NAMES extern safemap<std::string,MapName>LEVEL_NAMES; #define ACCESS_PLAYER Player*p=game->GetPlayer(); #define VARIANTS float,int,std::string,bool,vf2d #define INFINITE 999999 #define SETUP_CLASS(class) \ class::class() \ :Player::Player(){} \ class::class(Player*player) \ :Player::Player(player){} \ Class class::GetClass(){return cl;} \ std::string class::GetClassName(){return name;} \ Ability&class::GetRightClickAbility(){return rightClickAbility;}; \ Ability&class::GetAbility1(){return ability1;}; \ Ability&class::GetAbility2(){return ability2;}; \ Ability&class::GetAbility3(){return ability3;}; \ Ability&class::GetAbility4(){return ability4;}; \ std::string&class::GetWalkNAnimation(){return walk_n;}; \ std::string&class::GetWalkEAnimation(){return walk_e;}; \ std::string&class::GetWalkSAnimation(){return walk_s;}; \ std::string&class::GetWalkWAnimation(){return walk_w;}; \ std::string&class::GetIdleNAnimation(){return idle_n;}; \ std::string&class::GetIdleEAnimation(){return idle_e;}; \ std::string&class::GetIdleSAnimation(){return idle_s;}; \ std::string&class::GetIdleWAnimation(){return idle_w;}; \ std::string class::name=""; \ Class class::cl=ANY; \ Ability class::rightClickAbility=Ability(); \ Ability class::ability1=Ability(); \ Ability class::ability2=Ability(); \ Ability class::ability3=Ability(); \ Ability class::ability4=Ability(); \ std::string class::idle_n="WARRIOR_IDLE_N"; \ std::string class::idle_e="WARRIOR_IDLE_E"; \ std::string class::idle_s="WARRIOR_IDLE_S"; \ std::string class::idle_w="WARRIOR_IDLE_W"; \ std::string class::walk_n="WARRIOR_WALK_N"; \ std::string class::walk_e="WARRIOR_WALK_E"; \ std::string class::walk_s="WARRIOR_WALK_S"; \ std::string class::walk_w="WARRIOR_WALK_W";