diff --git a/C++ProjectTemplate b/C++ProjectTemplate index ef329e9..a37c3db 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/SeasonI.h b/SeasonI.h index 8347cfc..1f50bd4 100644 --- a/SeasonI.h +++ b/SeasonI.h @@ -39,7 +39,7 @@ class SeasonI:public PixelGameEngine{ void SaveMap(Map*map); void AddItemToPlayerInventory(ItemName item); Decal*CreateSprite(std::string spriteName); - Object*CreateObjectInfo(Object*obj,std::string spriteFileName,int sprWidth,Flag enableFlag=Flag::NONE,Flag disableFlag=Flag::NONE); 됐어 + Object*CreateObjectInfo(Object*obj,std::string spriteFileName,vi2d size,Flag enableFlag=Flag::NONE,Flag disableFlag=Flag::NONE); 됐어 vi2d grid(int x, int y); bool GetGameFlag(int flag); bool GetGameFlag(Flag flag); diff --git a/animation.h b/animation.h index 6c53dda..ef808ef 100644 --- a/animation.h +++ b/animation.h @@ -8,10 +8,10 @@ class Animation{ public: Decal*spr; int frames=1; - int width=0; - Animation(Decal*spr,int width){ - this->frames=spr->sprite->width/width; - this->width=width; + vi2d sprSize={0,0}; + Animation(Decal*spr,vi2d sprSize){ + this->frames=spr->sprite->width/sprSize.x; + this->sprSize=sprSize; this->spr=spr; } }; diff --git a/assets/maps/map0 b/assets/maps/map0 index d3421ca..83e92c6 100644 --- a/assets/maps/map0 +++ b/assets/maps/map0 @@ -75,13 +75,13 @@ OBJECT160.000000;224.000000;8 OBJECT288.000000;224.000000;8 OBJECT224.000000;224.000000;8 OBJECT256.000000;224.000000;7 +OBJECT343.000000;200.000000;0 OBJECT288.000000;256.000000;8 OBJECT256.000000;256.000000;8 OBJECT224.000000;256.000000;8 OBJECT192.000000;256.000000;8 OBJECT160.000000;256.000000;8 OBJECT512.000000;288.000000;158 -OBJECT429.000000;276.000000;0 OBJECT256.000000;288.000000;90 OBJECT128.000000;288.000000;90 OBJECT192.000000;320.000000;90 @@ -91,10 +91,4 @@ OBJECT96.000000;416.000000;159 ENCOUNTER64.000000;512.000000;90;2 ENCOUNTER192.000000;352.000000;100;1 ENCOUNTER480.000000;160.000000;100;3 -TRIGGER128;224;1;32;32 -TRIGGER96;224;1;32;32 -TRIGGER64;224;1;32;32 -TRIGGER64;256;1;32;32 -TRIGGER96;256;1;32;32 -TRIGGER128;256;1;32;32 -TRIGGER416;256;2;32;32;1;160.000000;256.000000 \ No newline at end of file +TRIGGER416;256;2;32;32;1;96.000000;256.000000 \ No newline at end of file diff --git a/assets/maps/newmap b/assets/maps/newmap index 34e28c7..63fd564 100644 --- a/assets/maps/newmap +++ b/assets/maps/newmap @@ -5,12 +5,12 @@ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????91:1;1?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????92:2;2?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??00????????????????????92:2;2?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +????????????????????????92:2;2?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +101010?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??66???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????66???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??66???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? diff --git a/assets/maps/newmap_2 b/assets/maps/newmap_2 index 6f6b16f..a76b657 100644 --- a/assets/maps/newmap_2 +++ b/assets/maps/newmap_2 @@ -9,11 +9,11 @@ ????????????????????????92:2;2?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????065656565616?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????065656565616?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????065656565616?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -????????????????????92075757575717?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -????????????????????????56?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? diff --git a/assets/maps/newmap_3 b/assets/maps/newmap_3 index 0103646..839a3ce 100644 --- a/assets/maps/newmap_3 +++ b/assets/maps/newmap_3 @@ -1,19 +1,19 @@ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????0313?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????0515????93;393;3??93:3:3:3;3?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????0616?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????0717????????032323232313?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????245252525233?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????245252525233?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????2493:3;35233?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -??????????????????????055555555515?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????????????????93;393;3??93:3:3:3;3?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????01201010101041???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????4042????????21????93:3;3?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????3210101030???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????21???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????21???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????21???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????21???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????21??????????21???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? diff --git a/assets/maps/newmap_4 b/assets/maps/newmap_4 index d682299..7f1dfef 100644 --- a/assets/maps/newmap_4 +++ b/assets/maps/newmap_4 @@ -1,22 +1,22 @@ ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -????????????????????????525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? -???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +????????????????????????????????5252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????????????525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +525252525252525252525252525252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +525252525252525252525252525252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +525252525252525252525252525252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +525252525252525252525252525252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +5252525252525252525252525252525252?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +52525252525252525252525252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??????????????????????5252525252???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +????????????????????????52??52?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? diff --git a/assets/player.png b/assets/player.png index 5c1f355..9aca218 100644 Binary files a/assets/player.png and b/assets/player.png differ diff --git a/defines.h b/defines.h index 6721ed1..a8c970c 100644 --- a/defines.h +++ b/defines.h @@ -57,6 +57,13 @@ enum:char{ SIGMA=Σ, }; +enum class Direction{ + SOUTH, + EAST, + WEST, + NORTH, +}; + extern vd2d cameraPos; #endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index cdb3b9b..41b3c83 100644 --- a/main.cpp +++ b/main.cpp @@ -428,174 +428,174 @@ void SeasonI::SetupAnimations() { } void SeasonI::SetupObjectInfo() { - CreateObjectInfo(new Standard_Obj(PLAYER,"player",{0,0},nullptr,{2,2},WHITE,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(NESS,"Ness",{0,0},nullptr,{1,1},YELLOW,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(PAULA,"Paula",{0,0},nullptr,{1,1},MAGENTA,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(JEFF,"Jeff",{0,0},nullptr,{1,1},DARK_GREEN,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(ANNA,"Anna",{0,0},nullptr,{1,1},DARK_MAGENTA,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(KING,"King",{0,0},nullptr,{1,1},GREY,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(POO,"Poo",{0,0},nullptr,{1,1},DARK_GREY,32),"player.png",32); - CreateObjectInfo(new Standard_Obj(NPC1,"npc1",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2,"npc2",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3,"npc3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4,"npc4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5,"npc5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6,"npc6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7,"npc7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8,"npc8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9,"npc9",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10,"npc10",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11,"npc11",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12,"npc12",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13,"npc13",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13,"npc14",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14,"npc15",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15,"npc16",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16,"npc17",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17,"npc18",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18,"npc19",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19,"npc20",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_2,"npc1_2",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_2,"npc2_2",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_2,"npc3_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_2,"npc4_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_2,"npc5_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_2,"npc6_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_2,"npc7_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_2,"npc8_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_2,"npc9_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_2,"npc10_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_2,"npc11_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_2,"npc12_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_2,"npc13_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_2,"npc14_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_2,"npc15_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_2,"npc16_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_2,"npc17_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_2,"npc18_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_2,"npc19_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_2,"npc20_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_3,"npc1_3",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_3,"npc2_3",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_3,"npc3_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_3,"npc4_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_3,"npc5_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_3,"npc6_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_3,"npc7_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_3,"npc8_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_3,"npc9_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_3,"npc10_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_3,"npc11_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_3,"npc12_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_3,"npc13_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_3,"npc14_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_3,"npc15_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_3,"npc16_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_3,"npc17_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_3,"npc18_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_3,"npc19_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_3,"npc20_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_4,"npc1_4",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_4,"npc2_4",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_4,"npc3_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_4,"npc4_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_4,"npc5_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_4,"npc6_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_4,"npc7_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_4,"npc8_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_4,"npc9_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_4,"npc10_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_4,"npc11_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_4,"npc12_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_4,"npc13_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_4,"npc14_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_4,"npc15_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_4,"npc16_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_4,"npc17_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_4,"npc18_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_4,"npc19_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_4,"npc20_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_5,"npc1_5",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_5,"npc2_5",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_5,"npc3_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_5,"npc4_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_5,"npc5_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_5,"npc6_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_5,"npc7_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_5,"npc8_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_5,"npc9_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_5,"npc10_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_5,"npc11_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_5,"npc12_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_5,"npc13_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_5,"npc14_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_5,"npc15_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_5,"npc16_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_5,"npc17_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_5,"npc18_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_5,"npc19_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_5,"npc20_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_6,"npc1_6",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_6,"npc2_6",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_6,"npc3_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_6,"npc4_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_6,"npc5_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_6,"npc6_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_6,"npc7_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_6,"npc8_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_6,"npc9_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_6,"npc10_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_6,"npc11_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_6,"npc12_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_6,"npc13_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_6,"npc14_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_6,"npc15_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_6,"npc16_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_6,"npc17_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_6,"npc18_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_6,"npc19_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_6,"npc20_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_7,"npc1_7",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_7,"npc2_7",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_7,"npc3_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_7,"npc4_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_7,"npc5_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_7,"npc6_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_7,"npc7_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_7,"npc8_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_7,"npc9_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_7,"npc10_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_7,"npc11_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_7,"npc12_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_7,"npc13_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_7,"npc14_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_7,"npc15_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_7,"npc16_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_7,"npc17_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_7,"npc18_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_7,"npc19_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC19_7,"npc20_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC1_8,"npc1_8",{0,0},nullptr,{1,1},RED,60),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC2_8,"npc2_8",{0,0},nullptr,{1,1},GREEN,2),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC3_8,"npc3_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC4_8,"npc4_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC5_8,"npc5_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC6_8,"npc6_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC7_8,"npc7_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC8_8,"npc8_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC9_8,"npc9_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC10_8,"npc10_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC11_8,"npc11_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC12_8,"npc12_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_8,"npc13_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC13_8,"npc14_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC14_8,"npc15_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC15_8,"npc16_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC16_8,"npc17_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC17_8,"npc18_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Standard_Obj(NPC18_8,"npc19_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new Shopkeeper_Obj(SHOPKEEPER,"Shopkeeper",{0,0},nullptr,{1,1},YELLOW,20),"player.png",32,Flag::NONE,Flag::NONE); - CreateObjectInfo(new TrashCan_Obj(TRASH_CAN,"trashCan",{0,0},nullptr,{1,1},WHITE,0),"trashcan.png",32,Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(PLAYER,"player",{0,0},nullptr,{2,2},WHITE,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(NESS,"Ness",{0,0},nullptr,{1,1},YELLOW,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(PAULA,"Paula",{0,0},nullptr,{1,1},MAGENTA,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(JEFF,"Jeff",{0,0},nullptr,{1,1},DARK_GREEN,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(ANNA,"Anna",{0,0},nullptr,{1,1},DARK_MAGENTA,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(KING,"King",{0,0},nullptr,{1,1},GREY,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(POO,"Poo",{0,0},nullptr,{1,1},DARK_GREY,32),"player.png",{32,32}); + CreateObjectInfo(new Standard_Obj(NPC1,"npc1",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2,"npc2",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3,"npc3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4,"npc4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5,"npc5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6,"npc6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7,"npc7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8,"npc8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9,"npc9",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10,"npc10",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11,"npc11",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12,"npc12",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13,"npc13",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13,"npc14",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14,"npc15",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15,"npc16",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16,"npc17",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17,"npc18",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18,"npc19",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19,"npc20",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_2,"npc1_2",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_2,"npc2_2",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_2,"npc3_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_2,"npc4_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_2,"npc5_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_2,"npc6_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_2,"npc7_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_2,"npc8_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_2,"npc9_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_2,"npc10_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_2,"npc11_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_2,"npc12_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_2,"npc13_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_2,"npc14_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_2,"npc15_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_2,"npc16_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_2,"npc17_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_2,"npc18_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_2,"npc19_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_2,"npc20_2",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_3,"npc1_3",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_3,"npc2_3",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_3,"npc3_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_3,"npc4_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_3,"npc5_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_3,"npc6_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_3,"npc7_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_3,"npc8_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_3,"npc9_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_3,"npc10_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_3,"npc11_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_3,"npc12_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_3,"npc13_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_3,"npc14_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_3,"npc15_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_3,"npc16_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_3,"npc17_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_3,"npc18_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_3,"npc19_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_3,"npc20_3",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_4,"npc1_4",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_4,"npc2_4",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_4,"npc3_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_4,"npc4_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_4,"npc5_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_4,"npc6_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_4,"npc7_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_4,"npc8_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_4,"npc9_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_4,"npc10_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_4,"npc11_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_4,"npc12_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_4,"npc13_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_4,"npc14_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_4,"npc15_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_4,"npc16_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_4,"npc17_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_4,"npc18_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_4,"npc19_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_4,"npc20_4",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_5,"npc1_5",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_5,"npc2_5",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_5,"npc3_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_5,"npc4_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_5,"npc5_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_5,"npc6_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_5,"npc7_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_5,"npc8_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_5,"npc9_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_5,"npc10_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_5,"npc11_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_5,"npc12_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_5,"npc13_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_5,"npc14_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_5,"npc15_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_5,"npc16_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_5,"npc17_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_5,"npc18_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_5,"npc19_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_5,"npc20_5",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_6,"npc1_6",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_6,"npc2_6",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_6,"npc3_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_6,"npc4_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_6,"npc5_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_6,"npc6_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_6,"npc7_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_6,"npc8_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_6,"npc9_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_6,"npc10_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_6,"npc11_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_6,"npc12_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_6,"npc13_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_6,"npc14_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_6,"npc15_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_6,"npc16_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_6,"npc17_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_6,"npc18_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_6,"npc19_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_6,"npc20_6",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_7,"npc1_7",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_7,"npc2_7",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_7,"npc3_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_7,"npc4_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_7,"npc5_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_7,"npc6_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_7,"npc7_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_7,"npc8_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_7,"npc9_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_7,"npc10_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_7,"npc11_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_7,"npc12_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_7,"npc13_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_7,"npc14_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_7,"npc15_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_7,"npc16_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_7,"npc17_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_7,"npc18_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_7,"npc19_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC19_7,"npc20_7",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC1_8,"npc1_8",{0,0},nullptr,{1,1},RED,60),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC2_8,"npc2_8",{0,0},nullptr,{1,1},GREEN,2),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC3_8,"npc3_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC4_8,"npc4_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC5_8,"npc5_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC6_8,"npc6_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC7_8,"npc7_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC8_8,"npc8_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC9_8,"npc9_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC10_8,"npc10_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC11_8,"npc11_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC12_8,"npc12_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_8,"npc13_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC13_8,"npc14_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC14_8,"npc15_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC15_8,"npc16_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC16_8,"npc17_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC17_8,"npc18_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Standard_Obj(NPC18_8,"npc19_8",{0,0},nullptr,{2,2},BLUE,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new Shopkeeper_Obj(SHOPKEEPER,"Shopkeeper",{0,0},nullptr,{1,1},YELLOW,20),"player.png",{32,32},Flag::NONE,Flag::NONE); + CreateObjectInfo(new TrashCan_Obj(TRASH_CAN,"trashCan",{0,0},nullptr,{1,1},WHITE,0),"trashcan.png",{32,32},Flag::NONE,Flag::NONE); } void SeasonI::SetupEncounters() { @@ -1046,9 +1046,9 @@ Decal*SeasonI::CreateSprite(std::string spriteName) { return SPRITES[spriteName]; } -Object*SeasonI::CreateObjectInfo(Object*obj,std::string spriteFileName,int sprWidth,Flag enableFlag,Flag disableFlag) { +Object*SeasonI::CreateObjectInfo(Object*obj,std::string spriteFileName,vi2d sprSize,Flag enableFlag,Flag disableFlag) { if (!ANIMATIONS.count(spriteFileName)) { - ANIMATIONS[spriteFileName] = new Animation(CreateSprite(spriteFileName),sprWidth); + ANIMATIONS[spriteFileName] = new Animation(CreateSprite(spriteFileName),sprSize); } obj->spr=ANIMATIONS[spriteFileName]; obj->SetScale(obj->GetScale()); @@ -2918,7 +2918,7 @@ void SeasonI::drawGame(){ EnableLayer(layer::COLLISION,false); } FillRectDecal(drawpos,{16,24},VERY_DARK_GREY); - DrawPartialDecal({(float)drawpos.x,(float)drawpos.y+8},{16,16},obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->width),0},{(float)obj->spr->width,(float)obj->spr->spr->sprite->height},obj->color); + DrawPartialDecal({(float)drawpos.x,(float)drawpos.y+8},{16,16},obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->sprSize.x),(float)obj->spr->sprSize.y*obj->animationSubIndex},{(float)obj->spr->sprSize.x,(float)obj->spr->sprSize.y},obj->color); DrawStringDecal({(float)(drawpos.x+2),(float)(drawpos.y)},obj->name,WHITE,{(float)(12.0/GetTextSize(obj->name).x),1.0}); if (SELECTED_OBJ_ID==obj->id) { DrawRectDecal(drawpos,{16,24},YELLOW); @@ -2954,10 +2954,10 @@ void SeasonI::drawGame(){ } FillRectDecal(drawpos,{16,24},VERY_DARK_GREY); for (int i=0;iobjs.size();i+=2) { - DrawPartialDecal({(float)(drawpos.x+((double)8/(enc->objs.size()))*i-4),(float)(drawpos.y)},{16,16},enc->objs[i]->obj->spr->spr,{(float)((enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->width),0},{(float)(enc->objs[i]->obj->spr->width),(float)(enc->objs[i]->obj->spr->spr->sprite->height)},enc->objs[i]->obj->color); + DrawPartialDecal({(float)(drawpos.x+((double)8/(enc->objs.size()))*i-4),(float)(drawpos.y)},{16,16},enc->objs[i]->obj->spr->spr,{(float)((enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->sprSize.x),(float)(enc->objs[i]->obj->spr->sprSize.y*enc->objs[i]->obj->animationSubIndex)},{(float)(enc->objs[i]->obj->spr->sprSize.x),(float)(enc->objs[i]->obj->spr->sprSize.y)},enc->objs[i]->obj->color); } for (int i=1;iobjs.size();i+=2) { - DrawPartialDecal({(float)(drawpos.x+((double)8/(enc->objs.size()))*i-4),(float)(drawpos.y+6)},{16,16},enc->objs[i]->obj->spr->spr,{(float)((enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->width),0},{(float)(enc->objs[i]->obj->spr->width),(float)(enc->objs[i]->obj->spr->spr->sprite->height)},enc->objs[i]->obj->color); + DrawPartialDecal({(float)(drawpos.x+((double)8/(enc->objs.size()))*i-4),(float)(drawpos.y+6)},{16,16},enc->objs[i]->obj->spr->spr,{(float)((enc->objs[i]->obj->frameIndex%enc->objs[i]->obj->spr->frames)*enc->objs[i]->obj->spr->sprSize.x),(float)(enc->objs[i]->obj->spr->sprSize.y*enc->objs[i]->obj->animationSubIndex)},{(float)(enc->objs[i]->obj->spr->sprSize.x),(float)(enc->objs[i]->obj->spr->sprSize.y)},enc->objs[i]->obj->color); } if (ENCOUNTER_SELECTED==enc->id) { DrawRectDecal(drawpos,{16,24},YELLOW); @@ -3045,14 +3045,14 @@ void SeasonI::drawGame(){ if (SELECTED_TARGET<0||GAME_STATE==GameState::OVERWORLD_TARGET_MENU) { int memberIndex = GAME_STATE==GameState::OVERWORLD_TARGET_MENU?OVERWORLD_TARGET_SELECTION:-SELECTED_TARGET-1; Battle::Move*selectedMove= GAME_STATE==GameState::OVERWORLD_TARGET_MENU?OVERWORLD_SELECTED_POWER:PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->selectedMove; - vd2d scale = {PARTY_MEMBER_OBJ[memberIndex]->spr->width/(double)SPRITES["targetCircle.png"]->sprite->width,PARTY_MEMBER_OBJ[memberIndex]->spr->spr->sprite->height/(double)SPRITES["targetCircle.png"]->sprite->height}; + vd2d scale = {PARTY_MEMBER_OBJ[memberIndex]->spr->sprSize.x/(double)SPRITES["targetCircle.png"]->sprite->width,PARTY_MEMBER_OBJ[memberIndex]->spr->sprSize.y/(double)SPRITES["targetCircle.png"]->sprite->height}; vi2d size = {SPRITES["targetCircle.png"]->sprite->width,SPRITES["targetCircle.png"]->sprite->height}; - DrawDecal(PARTY_MEMBER_OBJ[memberIndex]->GetPosWithOrigin()-cameraPos-size/2*scale,SPRITES["targetCircle.png"],{static_cast(PARTY_MEMBER_OBJ[memberIndex]->spr->width/(double)SPRITES["targetCircle.png"]->sprite->width),static_cast(PARTY_MEMBER_OBJ[memberIndex]->spr->spr->sprite->height/(double)SPRITES["targetCircle.png"]->sprite->height)},GREEN); + DrawDecal(PARTY_MEMBER_OBJ[memberIndex]->GetPosWithOrigin()-cameraPos-size/2*scale,SPRITES["targetCircle.png"],{static_cast(PARTY_MEMBER_OBJ[memberIndex]->spr->sprSize.x/(double)SPRITES["targetCircle.png"]->sprite->width),static_cast(PARTY_MEMBER_OBJ[memberIndex]->spr->sprSize.y/(double)SPRITES["targetCircle.png"]->sprite->height)},GREEN); if (BATTLE_STATE==BattleState::TARGET_SELECT) { DrawTargetRangeGrid(PARTY_MEMBER_OBJ[memberIndex]->GetPosWithOrigin(),selectedMove->range); } } else { - vd2d scale = {BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->spr->width/(double)SPRITES["targetCircle.png"]->sprite->width,BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->spr->spr->sprite->height/(double)SPRITES["targetCircle.png"]->sprite->height}; + vd2d scale = {BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->spr->sprSize.x/(double)SPRITES["targetCircle.png"]->sprite->width,BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->spr->sprSize.y/(double)SPRITES["targetCircle.png"]->sprite->height}; vi2d size = {SPRITES["targetCircle.png"]->sprite->width,SPRITES["targetCircle.png"]->sprite->height}; DrawDecal(BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->GetPosWithOrigin()-cameraPos-size/2*scale,SPRITES["targetCircle.png"],scale,YELLOW); DrawTargetRangeGrid(BATTLE_ENCOUNTER->objs[SELECTED_TARGET]->obj->GetPosWithOrigin(),PARTY_MEMBER_STATS[PARTY_MEMBER_ID[-CURRENT_TURN-1]]->selectedMove->range); @@ -3311,8 +3311,8 @@ void SeasonI::HandleBattle() { } for (int i=0;iplayerPos[i].x+BATTLE_ENCOUNTER->pos.x-PARTY_MEMBER_OBJ[i]->spr->width*0.5*(PARTY_MEMBER_OBJ[i]->GetScale().x-1), - BATTLE_ENCOUNTER->playerPos[i].y+BATTLE_ENCOUNTER->pos.y-(PARTY_MEMBER_OBJ[i]->spr->spr->sprite->height-4)*1*(PARTY_MEMBER_OBJ[i]->GetScale().y-1)}, + {BATTLE_ENCOUNTER->playerPos[i].x+BATTLE_ENCOUNTER->pos.x-PARTY_MEMBER_OBJ[i]->spr->sprSize.x*0.5*(PARTY_MEMBER_OBJ[i]->GetScale().x-1), + BATTLE_ENCOUNTER->playerPos[i].y+BATTLE_ENCOUNTER->pos.y-(PARTY_MEMBER_OBJ[i]->spr->sprSize.y-4)*1*(PARTY_MEMBER_OBJ[i]->GetScale().y-1)}, PriorityDirection::BOTH,BATTLE_CAMERA_MOVESPD)) { allDone=false; } @@ -3926,8 +3926,8 @@ void SeasonI::UpdatePlayerTrail(vd2d newMovement) { for (int i=PARTY_TRAIL_LENGTH-1;i>0;i--) { partyTrail[i]=partyTrail[i-1]; } - partyTrail[0]={PARTY_MEMBER_OBJ[0]->GetPos().x-newMovement.x+PARTY_MEMBER_OBJ[0]->spr->width*0.5*(PARTY_MEMBER_OBJ[0]->GetScale().x-1), - PARTY_MEMBER_OBJ[0]->GetPos().y-newMovement.y+(PARTY_MEMBER_OBJ[0]->spr->spr->sprite->height-4)*(PARTY_MEMBER_OBJ[0]->GetScale().y-1)}; + partyTrail[0]={PARTY_MEMBER_OBJ[0]->GetPos().x-newMovement.x+PARTY_MEMBER_OBJ[0]->spr->sprSize.x*0.5*(PARTY_MEMBER_OBJ[0]->GetScale().x-1), + PARTY_MEMBER_OBJ[0]->GetPos().y-newMovement.y+(PARTY_MEMBER_OBJ[0]->spr->sprSize.y-4)*(PARTY_MEMBER_OBJ[0]->GetScale().y-1)}; for (int i=1;iSetPos(partyTrail[PARTY_TRAIL_LENGTH*((double)i/4)]); } @@ -4403,11 +4403,11 @@ void SeasonI::DrawGameWorld() { double accY=0; int pixelOffsetX=0; int pixelOffsetY=0; - for (int xx=0;xxspr->width;xx++) { + for (int xx=0;xxspr->sprSize.x;xx++) { accX+=obj->GetScale().x; - for (int yy=0;yyspr->spr->sprite->height;yy++) { + for (int yy=0;yyspr->sprSize.y;yy++) { accY+=obj->GetScale().y; - Pixel col = data[yy*96+xx+((obj->frameIndex%obj->spr->frames)*obj->spr->width)]; + Pixel col = data[yy*96+xx+((obj->frameIndex%obj->spr->frames)*obj->spr->sprSize.x)]; while (accY>=1) { for (int xxx=0;xxx64) { @@ -4425,7 +4425,7 @@ void SeasonI::DrawGameWorld() { pixelOffsetY=0; } SetDrawTarget(layer::DYNAMIC); - DrawPartialDecal(obj->GetPos()-cameraPos,obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->width),0},{(float)obj->spr->width,(float)obj->spr->spr->sprite->height},obj->GetScale(),obj->color); + DrawPartialDecal(obj->GetPos()-cameraPos,obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->sprSize.x),(float)obj->spr->sprSize.y*obj->animationSubIndex},{(float)obj->spr->sprSize.x,(float)obj->spr->sprSize.y},obj->GetScale(),obj->color); vi2d nameOffset={0,8}; vi2d shadowOffset={1,1}; SetDrawTarget(layer::INTERFACE); @@ -4433,7 +4433,7 @@ void SeasonI::DrawGameWorld() { DrawStringDecal(obj->GetPosWithOrigin()-cameraPos-GetTextSize(obj->name)/2+nameOffset,obj->name); } else { SetDrawTarget(layer::DYNAMIC); - DrawPartialDecal(obj->GetPos()-cameraPos,obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->width),0},{(float)obj->spr->width,(float)obj->spr->spr->sprite->height},obj->GetScale(),obj->color); + DrawPartialDecal(obj->GetPos()-cameraPos,obj->spr->spr,{(float)((obj->frameIndex%obj->spr->frames)*obj->spr->sprSize.x),(float)obj->spr->sprSize.y*obj->animationSubIndex},{(float)obj->spr->sprSize.x,(float)obj->spr->sprSize.y},obj->GetScale(),obj->color); } } } diff --git a/object.h b/object.h index 688a67a..507f07d 100644 --- a/object.h +++ b/object.h @@ -18,6 +18,11 @@ struct Interaction{ Flag flag=Flag::NONE; }; +struct ObjectExtraData{ + int moveTime,moveFreq; + double moveSpd; +}; + class Object{ private: vd2d scale={1,1}; @@ -25,6 +30,7 @@ class Object{ public: int id; Animation*spr; + int animationSubIndex=0; //Which animation within the animation we are on. int frameIndex=0; int frameCount=0; int animationSpd=12; //How many frames to wait between each frame. Setting to 0 pauses the animation. @@ -34,6 +40,7 @@ class Object{ bool drawn=false; Flag disableFlag=Flag::NONE; Flag enableFlag=Flag::NONE; + ObjectExtraData extraData; int objArrElement; //Which element in the object array this object is located in. For sorting purposes. bool temp=false; //If set to true, it's marked for deletion after cutscene handling. bool enc=false; //If set to true, it's not included in the main list of entities for map saving because it's from an encounter. @@ -47,28 +54,23 @@ class Object{ return collisionData!=MAGENTA; } //A grid version of the constructor. used ONLY for battle setups. - Object(int id,std::string name,int gridx,int gridy,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false) - :Object(id,name,{gridx*32-(spr->width*0.5)*(scale.x-1),gridy*32-(spr->spr->sprite->height-4)*(scale.y-1)},spr,scale,color,animationSpd,temp) {} - Object(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false) { - this->spr=spr; - this->pos=pos; - this->id=id; - this->name=name; - this->color=color; - this->animationSpd=animationSpd; + Object(int id,std::string name,int gridx,int gridy,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0}) + :Object(id,name,{gridx*32-(spr->sprSize.x*0.5)*(scale.x-1),gridy*32-(spr->spr->sprite->height-4)*(scale.y-1)},spr,scale,color,animationSpd,temp,data) {} + Object(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0}) + :spr(spr),pos(pos),id(id),name(name),color(color),animationSpd(animationSpd),temp(temp),extraData(data) { SetScale(scale); - this->temp=temp; } - virtual Object* CreateType(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false)=0; + virtual Object* CreateType(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})=0; //When the player tries to interact with this object. virtual Interaction Interact()=0; virtual void ChoiceMade(int choice)=0; virtual void DialogClosed()=0; virtual void ShoppingCompleted()=0; + virtual void Update(float fElapsedTime)=0; void SetScale(vd2d scale) { this->scale=scale; if (spr!=nullptr) { - this->originPoint={spr->width/2*scale.x,(spr->spr->sprite->height-4)*scale.y}; + this->originPoint={spr->sprSize.x/2*scale.x,(spr->sprSize.y-4)*scale.y}; } } vd2d GetScale() { @@ -167,12 +169,12 @@ class Object{ }; #define DynamicObject(objName) public:\ - objName(int id,std::string name,int gridx,int gridy,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false)\ - :Object(id,name,gridx,gridy,spr,scale,color,animationSpd,temp){};\ - objName(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false)\ - :Object(id,name,pos,spr,scale,color,animationSpd,temp){};\ - Object* CreateType(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false)override{\ - return new objName(id,name,pos,spr,scale,color,animationSpd,temp);\ + objName(int id,std::string name,int gridx,int gridy,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})\ + :Object(id,name,gridx,gridy,spr,scale,color,animationSpd,temp,data){};\ + objName(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})\ + :Object(id,name,pos,spr,scale,color,animationSpd,temp,data){};\ + Object* CreateType(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})override{\ + return new objName(id,name,pos,spr,scale,color,animationSpd,temp,data);\ } class Standard_Obj : public Object{ @@ -181,6 +183,39 @@ class Standard_Obj : public Object{ void DialogClosed()override{}; void ChoiceMade(int choice)override{}; void ShoppingCompleted()override{}; + void Update(float fElapsedTime)override{}; +}; + +class NPC_Obj : public Standard_Obj{ + float remainingMoveTime=0; + Direction moveDir=Direction::SOUTH; + NPC_Obj(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false)\ + :Standard_Obj(id,name,pos,spr,scale,color,animationSpd,temp){} + void Update(float fElapsedTime)override{ + if (rand()%extraData.moveFreq==0) { + remainingMoveTime=extraData.moveTime; + moveDir=(Direction)(rand()%4); + } + if (remainingMoveTime>0) { + vd2d moveVector; + switch (moveDir) { + case Direction::SOUTH:{ + moveVector={0,1}; + }break; + case Direction::EAST:{ + moveVector={1,0}; + }break; + case Direction::WEST:{ + moveVector={-1,0}; + }break; + case Direction::NORTH:{ + moveVector={0,-1}; + }break; + } + SmoothMove(moveVector*extraData.moveSpd); + remainingMoveTime-=fElapsedTime; + } + } }; class TrashCan_Obj : public Object{ @@ -191,6 +226,7 @@ class TrashCan_Obj : public Object{ void DialogClosed()override{}; void ChoiceMade(int choice)override{}; void ShoppingCompleted()override{}; + void Update(float fElapsedTime)override{}; }; extern int MESSAGE_BOX_DIALOG_ANSWER; @@ -217,6 +253,7 @@ class Shopkeeper_Obj : public Object{ >0:Please take a look through our wares.\ >1:What would you like to sell?\ >2:Are you okay?<"; + void Update(float fElapsedTime)override{}; Interaction Interact()override{ if (GAME->GetGameFlag(Flag::SHOPKEER_BRANCH1)) { GAME_FLAGS[(int)Flag::SHOPKEER_BRANCH1]=false;