diff --git a/Crawler/Crawler.cpp b/Crawler/Crawler.cpp
index 8ea81b33..fd721129 100644
--- a/Crawler/Crawler.cpp
+++ b/Crawler/Crawler.cpp
@@ -996,6 +996,13 @@ void Crawler::LoadLevel(MapName map){
player->upperLevel=false; //Assume player starts on lower level.
player->SetPos(MAP_DATA[map].MapData.playerSpawnLocation);
+
+ vf2d cameraStartPos=player->GetPos()+vf2d(-24*6,0);
+ camera.SetMode(Camera2D::Mode::Simple);
+ camera.SetTarget(cameraStartPos);
+ camera.Update(game->GetElapsedTime());
+ camera.SetMode(Camera2D::Mode::LazyFollow);
+ camera.SetTarget(player->GetPos());
pathfinder.Initialize();
}
diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj
index a13a46d2..4965199f 100644
--- a/Crawler/Crawler.vcxproj
+++ b/Crawler/Crawler.vcxproj
@@ -272,6 +272,7 @@
+
@@ -306,6 +307,7 @@
+
diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters
index 8e4b68e8..285214a1 100644
--- a/Crawler/Crawler.vcxproj.filters
+++ b/Crawler/Crawler.vcxproj.filters
@@ -135,6 +135,9 @@
Header Files
+
+ Header Files
+
@@ -236,6 +239,9 @@
Source Files\Monster Strategies
+
+ Source Files
+
diff --git a/Crawler/MonsterAttribute.cpp b/Crawler/MonsterAttribute.cpp
index a54ab993..6836b500 100644
--- a/Crawler/MonsterAttribute.cpp
+++ b/Crawler/MonsterAttribute.cpp
@@ -1,4 +1,5 @@
#include "MonsterAttribute.h"
+#define SETUP(attribute,type) _ATTRIBUTE attribute{ATTRIBUTE_TYPE::type};
-_ATTRIBUTE Attribute::IFRAME_TIME_UPON_HIT{ATTRIBUTE_TYPE::FLOAT};
-_ATTRIBUTE Attribute::SHOOT_RING_TIMER{ATTRIBUTE_TYPE::FLOAT};
\ No newline at end of file
+SETUP(Attribute::IFRAME_TIME_UPON_HIT,FLOAT);
+SETUP(Attribute::SHOOT_RING_TIMER,FLOAT);
\ No newline at end of file
diff --git a/Crawler/MonsterAttribute.h b/Crawler/MonsterAttribute.h
index 9f0bfb3a..7190f815 100644
--- a/Crawler/MonsterAttribute.h
+++ b/Crawler/MonsterAttribute.h
@@ -16,6 +16,7 @@ struct _ATTRIBUTE{
};
struct Attribute{
- static _ATTRIBUTE IFRAME_TIME_UPON_HIT;
- static _ATTRIBUTE SHOOT_RING_TIMER;
+ #define SETUP(attribute) static _ATTRIBUTE attribute;
+ SETUP(IFRAME_TIME_UPON_HIT);
+ SETUP(SHOOT_RING_TIMER);
};
\ No newline at end of file
diff --git a/Crawler/SlimeKing.cpp b/Crawler/SlimeKing.cpp
index b3754c88..4a010c46 100644
--- a/Crawler/SlimeKing.cpp
+++ b/Crawler/SlimeKing.cpp
@@ -12,7 +12,7 @@ void Monster::STRATEGY::SLIMEKING(Monster&m,float fElapsedTime,int strategyNumbe
case 0:{
m.size=ConfigInt("Phase1.Size")/100;
m.diesNormally=false;
- m.Set(Attribute::IFRAME_TIME_UPON_HIT,0);
+ m.Set(Attribute::IFRAME_TIME_UPON_HIT,0.f);
m.iframe_timer=ConfigFloat("Phase5.IframeTimePerHit");
m.phase=1;
}break;
diff --git a/Crawler/Version.h b/Crawler/Version.h
index 27b56c55..34ef497a 100644
--- a/Crawler/Version.h
+++ b/Crawler/Version.h
@@ -2,7 +2,7 @@
#define VERSION_MAJOR 0
#define VERSION_MINOR 2
#define VERSION_PATCH 0
-#define VERSION_BUILD 1094
+#define VERSION_BUILD 1101
#define stringify(a) stringify_(a)
#define stringify_(a) #a
diff --git a/Crawler/pge.data b/Crawler/pge.data
index d0463e96..0e4efa7d 100644
--- a/Crawler/pge.data
+++ b/Crawler/pge.data
@@ -2452,7 +2452,7 @@
-