home · contact · privacy
Each map object action now take different numbers of turns to complete. Re-wrote...
[plomrogue] / src / main.c
index adf093f0e44dfc64a8bc13dd102754cd4c907981..86f8507869cd3e28899b67dde5ed97ed59a9b348 100644 (file)
@@ -29,6 +29,7 @@
 #include "control.h" /* for control_by_id(), player_control(),
                       * get_available_keycode_to_action()
                       */
+#include "map_object_actions.h" /* for init_map_object_actions() */
 
 
 
@@ -37,8 +38,11 @@ int main(int argc, char *argv[])
     char * f_name = "main()";
     world.turn = 0;        /* Turns to 1 when map and objects are initalized. */
 
+    /* Initialize commands and map object actions. */
     init_command_db();
     set_cleanup_flag(CLEANUP_COMMAND_DB);
+    init_map_object_actions();
+    set_cleanup_flag(CLEANUP_MAPOBJACTS);
 
     /* Check for corrupted savefile / recordfile savings. */
     char * recordfile = "record";
@@ -152,12 +156,10 @@ int main(int argc, char *argv[])
     curs_set(0);
     keypad(screen, TRUE);
     raw();
-    char * err_winmem = "Trouble with init_win_meta() in main ().";
-    exit_err(init_win_meta(screen, &world.wmeta), err_winmem);
+    init_win_meta(screen);
     set_cleanup_flag(CLEANUP_WIN_META);
-    load_interface_conf(/*&world*/);
+    load_interface_conf();
     set_cleanup_flag(CLEANUP_INTERFACE_CONF);
-    err_winmem = "Trouble with draw_all_wins() in main().";
 
     /* Focus map on player. */
     struct MapObj * player = get_player();
@@ -182,7 +184,8 @@ int main(int argc, char *argv[])
                 {
                     break;
                 }
-                if (is_command_id_shortdsc(action, "drop"))
+                if (   is_command_id_shortdsc(action, "drop")
+                    || is_command_id_shortdsc(action, "use"))
                 {
                     world.inventory_select = getc(file);
                 }
@@ -191,7 +194,7 @@ int main(int argc, char *argv[])
         }
         while (1)
         {
-            draw_all_wins(world.wmeta);
+            draw_all_wins();
             key = getch();
             wc = get_winconf_by_win(world.wmeta->active);
             if  (   (1 == wc->view && wingeom_control(key))
@@ -205,7 +208,8 @@ int main(int argc, char *argv[])
                 action = getc(file);
                 if (EOF != action)
                 {
-                    if (is_command_id_shortdsc(action, "drop"))
+                    if (   is_command_id_shortdsc(action, "drop")
+                        || is_command_id_shortdsc(action, "use"))
                     {
                         world.inventory_select = getc(file);
                     }
@@ -226,7 +230,7 @@ int main(int argc, char *argv[])
         while (1)
         {
             save_game();
-            draw_all_wins(world.wmeta);
+            draw_all_wins();
             key = getch();
             wc = get_winconf_by_win(world.wmeta->active);
             if  (   (1 == wc->view && wingeom_control(key))