diff --git a/Win32/Unuk/Unuk/Unuk.vcproj b/Win32/Unuk/Unuk/Unuk.vcproj
index 9588387..e6c7e63 100644
--- a/Win32/Unuk/Unuk/Unuk.vcproj
+++ b/Win32/Unuk/Unuk/Unuk.vcproj
@@ -65,7 +65,7 @@
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\Dependencies\Lib\"
GenerateDebugInformation="true"
- SubSystem="2"
+ SubSystem="1"
TargetMachine="1"
/>
diff --git a/src/Unuk/Game.cpp b/src/Unuk/Game.cpp
index fade9e9..49d74fd 100644
--- a/src/Unuk/Game.cpp
+++ b/src/Unuk/Game.cpp
@@ -174,6 +174,7 @@ void Game::UpdateGame(void) {
}
void Game::Render(void) {
+ // SDL_FillRect(screen, NULL, 0); // You might want to clear the buffer! --konom
if(_ingameMenu.GetStatus() == false) {
_map.Render();
diff --git a/src/Unuk/main.cpp b/src/Unuk/main.cpp
index 2718317..cadfee1 100644
--- a/src/Unuk/main.cpp
+++ b/src/Unuk/main.cpp
@@ -23,7 +23,7 @@
#endif
#endif
-#ifndef _WIN32
+#if !defined(_WIN32) || defined(_DEBUG)
int main() {
#else
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
diff --git a/src/libUnuk/Character.cpp b/src/libUnuk/Character.cpp
index 08f0df3..dd998f2 100644
--- a/src/libUnuk/Character.cpp
+++ b/src/libUnuk/Character.cpp
@@ -65,18 +65,18 @@ void Character::Render(void) {
// Draw some fancy speach bubbles. It is a bit of a mess, I am playing.
if(_speachBubble.size() != 0) {
if(_speachBubbleTimer.GetTicks() < SPEACH_BUBBLE_DISPLAY_LENGTH) {
- roundedBoxRGBA(screen, (x + w / 2) - 100,
- y - 100,
- (x + w / 2) + 100,
- y - 35,
+ roundedBoxRGBA(screen, (x + w / 2) - 100 - camera.x,
+ y - 100 - camera.y,
+ (x + w / 2) + 100 - camera.x,
+ y - 35 - camera.y,
5, 255, 255, 255, 255);
- filledTrigonRGBA(screen, (x + w / 2) - 100,
- y - 100,
- (x + w / 2) - 10,
- y - 40,
- (x + w / 2) + 10,
- y - 40,
+ filledTrigonRGBA(screen, (x + w / 2) - 100 - camera.x,
+ y - 100 - camera.y,
+ (x + w / 2) - 10 - camera.x,
+ y - 40 - camera.y,
+ (x + w / 2) + 10 - camera.x,
+ y - 40 - camera.y,
255, 255, 255, 255);
_speachBubbleText.Render((x + w / 2) - 90, y - 90);
diff --git a/src/libUnuk/Map.cpp b/src/libUnuk/Map.cpp
index 4222442..3969b5b 100644
--- a/src/libUnuk/Map.cpp
+++ b/src/libUnuk/Map.cpp
@@ -133,12 +133,16 @@ void Map::Update(void) {
}
void Map::Render(void) {
- int xOrig = (camera.x / TILE_WIDTH);
- int yOrig = (camera.y / TILE_HEIGHT);
+ int xOrig = (camera.x / TILE_WIDTH) - 1;
+ int yOrig = (camera.y / TILE_HEIGHT) - 1;
- int xEnd = (SCREEN_WIDTH / TILE_WIDTH);
- int yEnd = (SCREEN_HEIGHT / TILE_HEIGHT);
+ if (xOrig < 0) xOrig = 0;
+ if (yOrig < 0) yOrig = 0;
+ int xEnd = xOrig + (SCREEN_WIDTH / TILE_WIDTH) + 3;
+ int yEnd = yOrig + (SCREEN_HEIGHT / TILE_HEIGHT) + 3;
+
+ /* the fuck is this sara? --konom
if(xEnd < x)
xEnd++;
else
@@ -148,6 +152,15 @@ void Map::Render(void) {
yEnd++;
else
yEnd = y;
+ */
+
+ if (xEnd > x) xEnd = x;
+ if (yEnd > y) yEnd = y;
+ if (xEnd < 0) xEnd = 0;
+ if (yEnd < 0) yEnd = 0;
+
+ if (xOrig > xEnd) xOrig = xEnd - 1;
+ if (yOrig > yEnd) yOrig = yEnd - 1;
for(int i = xOrig; i < xEnd; i++) {
for(int j = yOrig; j < yEnd; j++) {