home · contact · privacy
Changed world geometry and repaired a var type incompatibility bug.
[plomrogue] / roguelike.c
index 7abc32337e876e671993e29c6924c3b0db29f218..afe73cece0e22c0d5fdced77b306ec591a9d6e44 100644 (file)
@@ -1,5 +1,5 @@
 #include <stdlib.h>
-//#include <limits.h>
+#include <limits.h>
 #include <stdint.h>
 #include <ncurses.h>
 #include <string.h>
@@ -21,7 +21,7 @@ uint16_t rrand(char use_seed, uint32_t new_seed) {
 uint32_t load_seed() {
 // Load seed integer from seed file.
   uint32_t seed;
-  const uint16_t nchar = 256;
+  const uint16_t nchar = UCHAR_MAX + 1;
   FILE * file = fopen("seed", "r");
   unsigned char a = fgetc(file);
   unsigned char b = fgetc(file);
@@ -33,7 +33,7 @@ uint32_t load_seed() {
 
 void save_seed(uint32_t seed) {
 // Save seed integer to seed file.
-  const uint16_t nchar = 256;
+  const uint16_t nchar = UCHAR_MAX + 1;
   unsigned char a = seed / (nchar * nchar * nchar);
   unsigned char b = (seed - (a * nchar * nchar * nchar)) / (nchar * nchar);
   unsigned char c = (seed - ((a * nchar * nchar * nchar) + (b * nchar * nchar))) / nchar;
@@ -71,8 +71,8 @@ struct Map init_map (uint32_t seed) {
 // Initialize map with some experimental start values.
   rrand(1, seed);
   struct Map map;
-  map.width = 96;
-  map.height = 32;
+  map.width = 64;
+  map.height = 64;
   map.offset_x = 0;
   map.offset_y = 0;
   map.cells = malloc(map.width * map.height);
@@ -105,8 +105,8 @@ void next_turn (struct World * world) {
 // Increment turn and move enemy.
   world->turn++;
   char d = rrand(0, 0) % 5;
-  char ty = world->monster->y;
-  char tx = world->monster->x;
+  uint16_t ty = world->monster->y;
+  uint16_t tx = world->monster->x;
   if (1 == d)
     ty++;
   else if (2 == d)
@@ -146,8 +146,8 @@ void move_player (struct World * world, char d) {
   static char prev = 0;
   char success = 0;
   char * dir;
-  char ty = world->player->y;
-  char tx = world->player->x;
+  uint16_t ty = world->player->y;
+  uint16_t tx = world->player->x;
   if ('s' == d) {
     dir = "south";
     ty++; }
@@ -206,12 +206,12 @@ int main (int argc, char *argv[]) {
   struct Map map = init_map(seed);
   world.map = &map;
   struct Player player;
-  player.y = 16;
-  player.x = 16;
+  player.y = 8;
+  player.x = 8;
   world.player = &player;
   struct Monster monster;
-  monster.y = 16;
-  monster.x = 80;
+  monster.y = 55;
+  monster.x = 55;
   world.monster = &monster;
 
   WINDOW * screen = initscr();