DEADSOFTWARE

Clean module Mobs for reimplementation mobs
[cavecraft.git] / src / CAVE.mpsrc
index 04446b3bf80dc50ba51180b00352480d03a26965..4f61a7db150db7a01614a4bdc5f285d6244b66b3 100644 (file)
@@ -13,7 +13,7 @@ uses
  canvas,\r
  items,\r
  safeload,\r
- mob,\r
+ mobs,\r
  console,\r
  effects,\r
  particles,\r
@@ -32,8 +32,7 @@ uses
  video;\r
 \r
 const\r
- version = 'BETA 9';\r
- version_map = 9;\r
+  version_map = 9;\r
 \r
 var\r
  keymode,updx,updy:integer;\r
@@ -54,7 +53,7 @@ var
  moon_phase:integer;\r
  toolus,toolind:integer;\r
  osadki_ani:integer;\r
- sd,sav_fl:string;\r
+ sav_fl:string;\r
  global_light:integer;\r
  world_typ:integer;\r
  float:image;\r
@@ -108,68 +107,70 @@ procedure maxfps;
   delay(del);\r
  end;\r
 \r
-procedure cleartextures;\r
- var\r
-  no:image;\r
-  ix,iy,iz:integer;\r
- begin\r
-  bg[0]:=no;\r
-  bg[1]:=no;\r
-  float:=no;\r
-  compas:=no;\r
-  for ix:=0 to 7 do clock[ix]:=no;\r
-\r
-  {for ix:=0 to maxBlockTex do\r
-   begin\r
-    tex[ix]:=no;\r
-    tex8[ix]:=no;\r
-   end;\r
-  for ix:=0 to maxItemTex do\r
-   begin\r
-    item[ix]:=no;\r
-    item8[ix]:=no;\r
-   end;}\r
- for ix:=0 to 8 do back[ix]:=no;\r
-\r
-  player.freeSkin;\r
-\r
-  for ix:=0 to 34 do\r
-   gui[ix]:=no;\r
-\r
-  for ix:=0 to 9 do tue[ix]:=no;\r
-\r
-  for ix:=0 to 7 do osad[0,ix]:=no;\r
-  for ix:=0 to 7 do osad[1,ix]:=no;\r
+procedure ClearTextures;\r
+  var\r
+    no : image;\r
+    ix, iy, iz : integer;\r
+  begin\r
+    bg[0] := no;\r
+    bg[1] := no;\r
+    float := no;\r
+    compas := no;\r
+    for ix := 0 to 7 do\r
+      clock[ix] := no;\r
+\r
+    for ix := 0 to maxBlockTex do\r
+      begin\r
+        tex[ix] := no;\r
+        tex8[ix] := no;\r
+      end;\r
+    for ix := 0 to maxItemTex do\r
+      begin\r
+        item[ix] := no;\r
+        item8[ix] := no;\r
+      end;\r
 \r
-  for ix:=0 to 15 do light[ix]:=no;\r
+    for ix := 0 to 8 do\r
+      back[ix]:=no;\r
 \r
-  for ix:=0 to 7 do\r
-   begin\r
-    pr_1[ix]:=no;\r
-    pr_2[ix]:=no;\r
-    pr_3[ix]:=no;\r
-    pr_4[ix]:=no;\r
-    pr_5[ix]:=no;\r
-   end;\r
-  bubble:=no;\r
+    player.freeSkin;\r
 \r
-  for ix:=0 to 15 do\r
-   pr_boom[ix]:=no;\r
+    for ix := 0 to 34 do\r
+      gui[ix] := no;\r
+    for ix := 0 to 9 do\r
+      tue[ix] := no;\r
+    for ix := 0 to 7 do\r
+      osad[0, ix] := no;\r
+    for ix := 0 to 7 do\r
+      osad[1, ix] := no;\r
 \r
-  mob.freeSkin;\r
+    for ix := 0 to 15 do\r
+      light[ix] := no;\r
+    for ix := 0 to 7 do\r
+      begin\r
+        pr_1[ix] := no;\r
+        pr_2[ix] := no;\r
+        pr_3[ix] := no;\r
+        pr_4[ix] := no;\r
+        pr_5[ix] := no;\r
+     end;\r
 \r
-  sky:=no;\r
+    bubble := no;\r
+    for ix := 0 to 15 do\r
+      pr_boom[ix] := no;\r
 \r
-  sun:=no;\r
-  moon:=no;\r
+    Mobs.FreeTextures;\r
 \r
-  sign_im:=no;\r
+    sky := no;\r
+    sun := no;\r
+    moon := no;\r
+    sign_im := no;\r
 \r
-  for ix:=0 to CONST_MAX_CURS do\r
-   LoadCurImg(no, ix);\r
+    for ix := 0 to CONST_MAX_CURS do\r
+      LoadCurImg(no, ix);\r
 \r
-  //resetVirtualKeyboard(-1);\r
- end;\r
+    //resetVirtualKeyboard(-1);\r
 end;\r
 \r
 procedure create_msg(s:string);\r
  var\r
@@ -205,8 +206,10 @@ procedure loadtexture(path:string);
     for ix:=0 to 8 do back[ix]:=rotate_image_from_image(im,ix*16,0,16,16,0);\r
    end;\r
 \r
+  console.exec('textures.cfg', 'AUTO');\r
+\r
   player.loadSkin('char_ani.png', path);\r
-  mob.loadSkin(path);\r
+  Mobs.LoadTextures(path);\r
 \r
   im:=ld_tex('gui.png',path,'gui/');\r
   gui[0]:=rotate_image_from_image(im,0,0,16,16,0);\r
@@ -343,7 +346,7 @@ procedure cleargame;
 \r
   drop.resetData;\r
 \r
-  mob.resetData;\r
+  Mobs.ResetData;\r
 \r
   //gb_up_pa:=0;\r
   reset_particles(max_particles+1);\r
@@ -521,7 +524,7 @@ procedure saveworld(path:string);
      furnace.saveData;\r
      drw_load_line('Mobs',70);\r
      //Mobs\r
-     mob.saveData;\r
+     Mobs.SaveData;\r
      drw_load_line('Drop',80);\r
      //Drop\r
      drop.saveData;\r
@@ -652,7 +655,7 @@ function loadworld(path:string):boolean;
      //Furnaces\r
      furnace.loadData;\r
      //Mobs\r
-     mob.loadData;\r
+     Mobs.LoadData;\r
      drw_load_line('Drop',80);\r
      //Drop\r
      drop.loadData;\r
@@ -1039,7 +1042,7 @@ procedure start_uu;
   rs:=openRecordStore('SD');\r
   sd:=readRecordStoreEntry(rs,1);\r
   closeRecordStore(rs);\r
-  console.exec('autoexec.cfg', 'AUTO', true);\r
+  console.exec('autoexec.cfg', 'AUTO');\r
   if sd='' then\r
    begin\r
     init_touch;\r
@@ -1395,6 +1398,7 @@ procedure menu_tex;
     if m_cur=0 then begin\r
      if cur_name>0 then\r
       begin\r
+       debug("Select TexturePack @ /" + sd + "/cavecraft/texturepacks/" + names[cur_name]);\r
        tex_pack:=names[cur_name];\r
        LoadDrawFont('/'+sd+'/cavecraft/texturepacks/'+tex_pack+'/');\r
        loadtexture('/'+sd+'/cavecraft/texturepacks/'+tex_pack+'/');\r
@@ -1402,9 +1406,13 @@ procedure menu_tex;
        rs:=openRecordStore('TX');\r
        t:=addRecordStoreEntry(rs,tex_pack);\r
        closeRecordStore(rs);\r
+\r
+       LoadDrawFont('/'+sd+'/cavecraft/texturepacks/'+tex_pack+'/');\r
+       loadtexture('/'+sd+'/cavecraft/texturepacks/'+tex_pack+'/');\r
       end;\r
      else\r
       begin\r
+       debug("Cancel Select TecturePack");\r
        tex_pack:='';\r
        loadtexture('/');\r
        deleteRecordStore('TX');\r
@@ -2038,7 +2046,7 @@ procedure draw;
    end;\r
 \r
   {===================[mobs]===================}\r
-  mob.draw(camx, camy);\r
+  Mobs.Draw(camx, camy);\r
   {===================[draw_blocks]===================}\r
   for ix:=minx to maxx do\r
   for iy:=miny to maxy do\r
@@ -2284,9 +2292,9 @@ function rt_useweap:boolean;
    damg:=1;\r
 \r
   if posi=0 then\r
-   i:=mob.findAndHit(damg, x-TILE_SIZE, y, TILE_SIZE+(w/2), h, -2, -3);\r
+   i:=Mobs.findAndHit(damg, x-TILE_SIZE, y, TILE_SIZE+(w/2), h, -2, -3);\r
   else\r
-   i:=mob.findAndHit(damg, x+(w/2), y, TILE_SIZE+(w/2), h, 2, -3);\r
+   i:=Mobs.findAndHit(damg, x+(w/2), y, TILE_SIZE+(w/2), h, 2, -3);\r
 \r
   if i<>-1 then\r
    begin\r
@@ -2721,9 +2729,9 @@ procedure phyhandler;
  var\r
   i:integer;\r
  begin\r
-  player.calcPhysics;\r
-  mob.updatePhy;\r
-  drop.calcPhy;\r
+  Player.CalcPhysics;\r
+  Mobs.UpdatePhy;\r
+  Drop.CalcPhy;\r
  end;\r
 \r
 procedure light_fillrect(l,x,y,r:integer);\r
@@ -2925,7 +2933,7 @@ procedure game;
 \r
   //if s_spawn_mob then if random(4096)=1547 then megaspawn;\r
 \r
-  mob.update;\r
+  Mobs.Update;\r
 \r
   if particle_upd then update_particle;\r
 \r