summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: be17b53)
raw | patch | inline | side by side (parent: be17b53)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Wed, 8 Mar 2017 15:44:58 +0000 (18:44 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Wed, 8 Mar 2017 15:44:58 +0000 (18:44 +0300) |
BUGS | patch | blob | history | |
res/blocks.cfg | patch | blob | history | |
run.sh | patch | blob | history | |
src/CAVE.mpsrc | patch | blob | history | |
src/furnace.mpsrc | patch | blob | history | |
src/items_logic.mpsrc | patch | blob | history | |
src/mobs.pas | patch | blob | history |
index c923d054ff4b941b54ca6b2ccbe1421852050ea3..f3fcc01d1fe0ef61258f3329b2fd2cd31ae60c9f 100644 (file)
--- a/BUGS
+++ b/BUGS
В бете 8 была поддержка звука, надо вернуть.
Запилить загрузку старых сохранений (см. cavecraft forever)
+ Софтклавиши для переключения предметов на ремне перепутаны
-Печи не сохраняются и не загружаются (не забыть инкрементировать версию формата карт)
++ Печи и мобы не сохраняются и не загружаются (не забыть инкрементировать версию формата карт)
При создании мира с сундуком, оный может висеть в воздухе
+ Зависание при попытке листать пустой список сохранений
Иногда вместо травы генерируется грязь.
Уголь встречается на поверхности реже чем железо
Починит установку блока при прыжке
Перепроверить рост деревьев
-Печь не светится когда работает
++ Печь не светится когда работает
Потеря контрастности при малом количестве источников света
Слишком много золота
Курсор на ремне должен быть чётче
Один уголь выплавляет 7 предметов, хотя должно быть 8
По лестнице можно лезть даже если она стоит выше игрока
-Золото не переплавляется
+ Игрок возраждается в точке своей смерти, вместо точки спавна
+ От больших грибов больно уж чорные тени. У тыкв тоже надо поправить.
+После удаления всех сохранений кнопки остаются на вид активными
diff --git a/res/blocks.cfg b/res/blocks.cfg
index 6a55e7d3d7fce7ae246ec30aacf1c49bde7184e0..3266e81729bf76d0baf5e75219196cef72a5450c 100644 (file)
--- a/res/blocks.cfg
+++ b/res/blocks.cfg
;Все описанные здесь блоки могут отображаться на карте.\r
\r
;Устанавливаем количество блоков\r
-RESET_BLOCKS 124\r
+RESET_BLOCKS 125\r
\r
;Описание команды установки блока:\r
;SET_BLOCK [id] [tex] [hp] [coll] [tool] [lvl] [flags] [tr] [li]\r
SET_BLOCK 123 139 1 0 0 0 b101 0 0\r
;Стебель тыквы\r
SET_BLOCK 124 139 1 0 0 0 b101 0 0\r
-\r
+;Горящая печь\r
+SET_BLOCK 125 134 40 0 3 0 b000 0 15\r
index 10d7f13785583ee7969f2b4af53ae78363a3e643..91e2a1b912b78191cf90894e68e6e55617f1208a 100755 (executable)
--- a/run.sh
+++ b/run.sh
#!/bin/sh
-F="c:;fs/c;e:;fs/e"
+F="c:;fs/c"
mkdir -p fs/c fs/e
# exec java -Dfileconn.dir.memorycard="file:///c:/" -jar pstros.jar bin.jar -w176 -h208 -s2 -fc="$F"
diff --git a/src/CAVE.mpsrc b/src/CAVE.mpsrc
index 90a1f780f4e51db2589efa885705eba93d71e0d2..6de766ba1a2b5bb5536d231afc86dd059fc144ec 100644 (file)
--- a/src/CAVE.mpsrc
+++ b/src/CAVE.mpsrc
video;\r
\r
const\r
- version='BETA 9';\r
- version_map=8;\r
+ version = 'BETA 9';\r
+ version_map = 9;\r
\r
var\r
keymode,updx,updy:integer;\r
\r
chest.resetData;\r
\r
- {for ix:=0 to 15 do\r
- begin\r
- b_furnace[ix]:=false;\r
- for iy:=0 to 4 do\r
- begin\r
- furnace[ix,iy].item_i:=0;\r
- furnace[ix,iy].sum_i:=0;\r
- furnace_gg[ix].f_gor:=15;\r
- furnace_gg[ix].fire_time:=0;\r
- furnace_gg[ix].f_got:=0;\r
- furnace_gg[ix].got_time:=0;\r
- end;\r
- end;}\r
+ furnace.resetData;\r
\r
drop.resetData;\r
\r
chest.saveData;\r
drw_load_line('Furnaces',60);\r
//Furnaces\r
- /* for ix:=0 to 15 do\r
- begin\r
- writebool(b_furnace[ix]);\r
- writeint(furnace_gg[ix].f_gor);\r
- writeint(furnace_gg[ix].f_got);\r
- for iy:=0 to 4 do\r
- begin\r
- write_byte(furnace[ix,iy].item_i);\r
- writeint(furnace[ix,iy].sum_i);\r
- end;\r
- end;*/\r
+ furnace.saveData;\r
drw_load_line('Mobs',70);\r
//Mobs\r
mob.saveData;\r
drw_load_line('Chests',55);\r
//Chests\r
chest.loadData;\r
- drw_load_line('Furnaces',60);\r
+ drw_load_line('Furnaces',60);\r
//Furnaces\r
- /* for ix:=0 to 15 do\r
- begin\r
- b_furnace[ix]:=readbool;\r
- furnace_gg[ix].f_gor:=readint;\r
- furnace_gg[ix].f_got:=readint;\r
- for iy:=0 to 4 do\r
- begin\r
- furnace[ix,iy].item_i:=read_byte;\r
- furnace[ix,iy].sum_i:=readint;\r
- end;\r
- end;*/\r
- drw_load_line('Mobs',70);\r
+ furnace.loadData;\r
//Mobs\r
mob.loadData;\r
- drw_load_line('Drop',80);\r
+ drw_load_line('Drop',80);\r
//Drop\r
drop.loadData;\r
- drw_load_line('Particles',85);\r
+ drw_load_line('Particles',85);\r
//Particles\r
max_particles:=readint;\r
reset_particles(max_particles+1);\r
diff --git a/src/furnace.mpsrc b/src/furnace.mpsrc
index 7f568dfe10252c743cfc0495de0a26612f5b45e2..0d195642186697463307e752a6dc2c29e52f751c 100644 (file)
--- a/src/furnace.mpsrc
+++ b/src/furnace.mpsrc
function furnaceBurn(i:integer):boolean;\r
function itemBurn(i:integer):boolean;\r
\r
+ procedure SaveData;\r
+ procedure LoadData;\r
+ procedure ResetData;\r
+\r
implementation\r
- uses maps, drop, items_store, items;\r
+ uses maps, drop, items_store, items, jsr75i, func;\r
+\r
var\r
furnace_b: array [0..MAX_FURNACE] of boolean;\r
furnace_item, furnace_sum: array [0..MAX_FURNACE, 0..MAX_FURNACE_CELLS] of integer;\r
UpdateTime;\r
end;\r
\r
+ procedure SaveData;\r
+ var\r
+ i, j : Integer;\r
+ begin\r
+ for i := 0 to MAX_FURNACE do\r
+ begin\r
+ writebool(furnace_b[i]);\r
+ for j := 0 to MAX_FURNACE_CELLS do\r
+ begin\r
+ write_byte(furnace_item[i, j]);\r
+ writeint(furnace_sum[i, j]);\r
+ end;\r
+ writeint(furnace_fstart[i]);\r
+ writeint(furnace_ftime[i]);\r
+ writeint(furnace_prstart[i]);\r
+ end;\r
+ end;\r
+\r
+ procedure LoadData;\r
+ var\r
+ i, j : Integer;\r
+ begin\r
+ for i := 0 to MAX_FURNACE do\r
+ begin\r
+ furnace_b[i] := readbool;\r
+ for j := 0 to MAX_FURNACE_CELLS do\r
+ begin\r
+ furnace_item[i, j] := read_byte;\r
+ furnace_sum[i, j] := readint;\r
+ end;\r
+ furnace_fstart[i] := readint;\r
+ furnace_ftime[i] := readint;\r
+ furnace_prstart[i] := readint;\r
+ end; \r
+ end;\r
+\r
+ procedure ResetData;\r
+ var\r
+ i, j : Integer;\r
+ begin\r
+ for i := 0 to MAX_FURNACE do\r
+ begin\r
+ furnace_b[i] := false;\r
+ for j := 0 to MAX_FURNACE_CELLS do\r
+ begin\r
+ furnace_item[i, j] := 0;\r
+ furnace_sum[i, j] := 0;\r
+ end;\r
+ furnace_fstart[i] := 0;\r
+ furnace_ftime[i] := 0;\r
+ furnace_prstart[i] := 0;\r
+ end; \r
+ end;\r
+\r
end.\r
diff --git a/src/items_logic.mpsrc b/src/items_logic.mpsrc
index d4900720c14ff97e92740b4079910d991620deb5..a0816c786b5cf4a569b16b157452430252312bb9 100644 (file)
--- a/src/items_logic.mpsrc
+++ b/src/items_logic.mpsrc
setmap(0,xx,yy);\r
destsign(getmapinfo(xx,yy));\r
end; else\r
- if id=106 then\r
+ if (id = 106) or (id = 125) then\r
begin\r
setmap(0,xx,yy);\r
DestroyFurnace(xx, yy);\r
begin\r
if createsign(xx,yy)=-1 then set_block_code:=true;\r
end; else\r
- if it=106 then\r
+ if (it = 106) or (it = 125) then\r
begin\r
if CreateFurnace(xx, yy)=FURNACE_ERROR then\r
set_block_code:=true;\r
begin\r
destsign(getmapinfo(xx,yy));\r
end; else\r
- if id=106 then\r
+ if (id = 106) or (id = 125) then\r
begin\r
DestroyFurnace(xx, yy);\r
end; else\r
destsign(getmapinfo(xx,yy));\r
drop.create(104,1,xx*16+4,yy*16+4);\r
end; else\r
- if id=106 then\r
+ if (id = 106) or (id = 125) then\r
begin\r
setmap(0,xx,yy);\r
DestroyFurnace(xx, yy);\r
if block=104 then\r
keymode:=5;*/\r
else\r
- if block=106 then\r
+ if (block = 106) or (block = 125) then\r
OpenFurnaceWindow(info);\r
else\r
if block=107 then\r
create_particle(4, x*16+4, y*16+4);\r
end;\r
else\r
+ if (block = 106) or (block = 125) then\r
+ begin\r
+ if furnaceBurn(getMapInfo(x, y)) then\r
+ setmap(125, x, y);\r
+ else\r
+ setmap(106, x, y);\r
+ end;\r
+ else\r
if block=110 then\r
begin\r
if (getmap(x-1, y)=0) or (getmap(x+1, y)=0) or (getmap(x, y-1)=0) or (getmap(x, y+1)=0) then\r
diff --git a/src/mobs.pas b/src/mobs.pas
index 4899980faad7dd40f79c6aa86bac25798a8f3481..72f062f21fdb2df6c94774f8f4a9304d81b6a7eb 100644 (file)
--- a/src/mobs.pas
+++ b/src/mobs.pas
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
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