foxygit / doom Log in
commit 66477dc794278f615447f1b2dae1fba69a63401a
Author:     James Haley <haleyjd@hotmail.com>
AuthorDate: Sat Nov 1 19:17:32 2014 -0500
Commit:     James Haley <haleyjd@hotmail.com>
CommitDate: Sat Nov 1 19:17:32 2014 -0500

    Automap accuracy fixes (against proper game)

    * Grid is not supported and gives no such message
    * Spot marking is substantially different
---
 src/strife/am_map.c   | 20 ++++++++++++++++----
 src/strife/d_englsh.h |  2 +-
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/strife/am_map.c b/src/strife/am_map.c
index 9bdaea69..5bf2aebe 100644
--- a/src/strife/am_map.c
+++ b/src/strife/am_map.c
@@ -322,7 +322,8 @@ void AM_addMark(void)
 {
     markpoints[markpointnum].x = m_x + m_w/2;
     markpoints[markpointnum].y = m_y + m_h/2;
-    markpointnum = (markpointnum + 1) % AM_NUMMARKPOINTS;
+    //markpointnum = (markpointnum + 1) % AM_NUMMARKPOINTS;
+    ++markpointnum; // haleyjd 20141101: [STRIFE] does not wrap around

 }

@@ -653,6 +654,8 @@ AM_Responder
             else
                 plr->message = DEH_String(AMSTR_FOLLOWOFF);
         }
+        // haleyjd 20141101: [STRIFE] grid is not supported
+        /*
         else if (key == key_map_grid)
         {
             grid = !grid;
@@ -661,17 +664,26 @@ AM_Responder
             else
                 plr->message = DEH_String(AMSTR_GRIDOFF);
         }
+        */
         else if (key == key_map_mark)
         {
+            // haleyjd 20141101: [STRIFE] if full, mark 9 is replaced
+            if(markpointnum == AM_NUMMARKPOINTS)
+                --markpointnum;
             M_snprintf(buffer, sizeof(buffer),
-                       "%s %d", DEH_String(AMSTR_MARKEDSPOT), markpointnum);
+                       "%s %d", DEH_String(AMSTR_MARKEDSPOT), markpointnum + 1); // [STRIFE]
             plr->message = buffer;
             AM_addMark();
         }
         else if (key == key_map_clearmark)
         {
-            AM_clearMarks();
-            plr->message = DEH_String(AMSTR_MARKSCLEARED);
+            // haleyjd 20141101: [STRIFE] clears last mark only
+            if(markpointnum > 0)
+            {
+                markpoints[markpointnum - 1].x = -1;
+                --markpointnum;
+                plr->message = DEH_String(AMSTR_MARKSCLEARED);
+            }
         }
         else
         {
diff --git a/src/strife/d_englsh.h b/src/strife/d_englsh.h
index 9d58e7d9..0f78f21a 100644
--- a/src/strife/d_englsh.h
+++ b/src/strife/d_englsh.h
@@ -227,7 +227,7 @@
 #define AMSTR_GRIDOFF	"Grid OFF"

 #define AMSTR_MARKEDSPOT        "Marked Spot"
-#define AMSTR_MARKSCLEARED      "All Marks Cleared"
+#define AMSTR_MARKSCLEARED      "Last Mark Cleared" // [STRIFE]

 //
 //	ST_stuff.C