DEADSOFTWARE

Fix furnace and mob data save
[cavecraft.git] / src / mobs.pas
index 4899980faad7dd40f79c6aa86bac25798a8f3481..72f062f21fdb2df6c94774f8f4a9304d81b6a7eb 100644 (file)
@@ -22,7 +22,7 @@ interface
  procedure freeSkin;//Выгрузка текстур\r
 \r
 implementation\r
- uses phy, player, canvas, func;\r
+ uses phy, player, canvas, jsr75i, func;\r
  const\r
   MAX_MOBS=31;\r
   MAX_ANIMREG=3;\r
@@ -543,33 +543,61 @@ procedure storePhy(i:integer);
      end;\r
    end;\r
 \r
-  procedure saveData;//Сохранение всех данных\r
-   begin\r
-\r
+  procedure saveData;\r
+    var\r
+      i, j : integer;\r
+    begin\r
+      for i := 0 to MAX_MOBS do\r
+        begin\r
+          write_byte(mob_type[i]);\r
+          writeint(mob_x[i]);\r
+          writeint(mob_y[i]);\r
+          writeint(mob_vx[i]);\r
+          writeint(mob_vy[i]);\r
+          write_byte(mob_posi[i]);\r
+          writeint(mob_hp[i]);\r
+          writebool(mob_jmp[i]);\r
+          for j := 0 to MAX_ANIMREG do\r
+            write_byte(mob_anim[i, j]);\r
+        end;\r
    end;\r
 \r
   procedure loadData;//Загрузка всех данных\r
-   begin\r
-\r
+    var\r
+      i, j : integer;\r
+    begin\r
+      for i := 0 to MAX_MOBS do\r
+        begin\r
+          mob_type[i] := read_byte;\r
+          mob_x[i]    := readint;\r
+          mob_y[i]    := readint;\r
+          mob_vx[i]   := readint;\r
+          mob_vy[i]   := readint;\r
+          mob_posi[i] := read_byte;\r
+          mob_hp[i]   := readint;\r
+          mob_jmp[i]  := readbool;\r
+          for j := 0 to MAX_ANIMREG do\r
+            mob_anim[i, j] := read_byte;\r
+        end;\r
    end;\r
 \r
   procedure resetData;//Сброс всех данных\r
-   var\r
-    i, j:integer;\r
-   begin\r
-    for i:=0 to MAX_MOBS do\r
-     begin\r
-      mob_type[i]:=M_NONE;\r
-      mob_x[i]:=0;\r
-      mob_y[i]:=0;\r
-      mob_vx[i]:=0;\r
-      mob_vy[i]:=0;\r
-      mob_posi[i]:=0;\r
-      mob_hp[i]:=0;\r
-      mob_jmp[i]:=false;\r
-      for j:=0 to MAX_ANIMREG do\r
-       mob_anim[i, j]:=0;\r
-     end;\r
+    var\r
+      i, j:integer;\r
+    begin\r
+      for i := 0 to MAX_MOBS do\r
+        begin\r
+          mob_type[i]:=M_NONE;\r
+          mob_x[i]:=0;\r
+          mob_y[i]:=0;\r
+          mob_vx[i]:=0;\r
+          mob_vy[i]:=0;\r
+          mob_posi[i]:=0;\r
+          mob_hp[i]:=0;\r
+          mob_jmp[i]:=false;\r
+          for j := 0 to MAX_ANIMREG do\r
+            mob_anim[i, j]:=0;\r
+        end;\r
    end;\r
 \r
 initialization\r