1 (* Copyright (C) DooM 2D:Forever Developers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *)
16 {$INCLUDE ../shared/a_modes.inc}
19 interface
21 uses
32 implementation
34 uses
40 const
49 var
51 begin
53 Exit;
55 // Ñèãíàòóðà îáúåêòà:
58 // Ïîëîæåíèå ïî-ãîðèçîíòàëè:
60 // Ïîëîæåíèå ïî-âåðòèêàëè:
62 // Îãðàíè÷èâàþùèé ïðÿìîóãîëüíèê:
67 // Ñêîðîñòü:
70 // Ïðèáàâêà ê ñêîðîñòè:
76 var
78 begin
80 Exit;
82 // Ñèãíàòóðà îáúåêòà:
85 begin
88 // Ïîëîæåíèå ïî-ãîðèçîíòàëè:
90 // Ïîëîæåíèå ïî-âåðòèêàëè:
92 // Îãðàíè÷èâàþùèé ïðÿìîóãîëüíèê:
97 // Ñêîðîñòü:
100 // Ïðèáàâêà ê ñêîðîñòè:
106 var
110 begin
116 try
117 // Îòêðûâàåì ôàéë ñîõðàíåíèé:
121 begin
122 // ×èòàåì ïåðâûé áëîê - ñîñòîÿíèå èãðû:
125 // Èìÿ èãðû:
128 // Çàêðûâàåì ôàéë:
132 except
146 var
154 begin
159 try
160 // Ñîçäàåì ôàéë ñîõðàíåíèÿ:
165 ///// Ïîëó÷àåì ñîñòîÿíèå èãðû: /////
167 // Èìÿ èãðû:
169 // Ïîëíûé ïóòü ê âàäó è êàðòà
170 if (Length(gCurrentMapFileName) <> 0) then e_LogWritefln('SAVE: current map is ''%s''...', [gCurrentMapFileName]);
172 // Ïóòü ê êàðòå:
175 // Èìÿ êàðòû:
178 // Êîëè÷åñòâî èãðîêîâ:
181 // Èãðîâîå âðåìÿ:
183 // Òèï èãðû:
185 // Ðåæèì èãðû:
187 // Ëèìèò âðåìåíè:
189 // Ëèìèò î÷êîâ:
191 // Ëèìèò æèçíåé:
193 // Èãðîâûå îïöèè:
195 // Äëÿ êîîïà:
202 // Ñîõðàíÿåì ñîñòîÿíèå èãðû:
206 ///// /////
208 ///// Ñîõðàíÿåì ñîñòîÿíèå îáëàñòåé ïðîñìîòðà: /////
223 ///// /////
225 ///// Ïîëó÷àåì ñîñòîÿíèå êàðòû: /////
227 // Ñîõðàíÿåì ñîñòîÿíèå êàðòû:
231 ///// /////
233 ///// Ïîëó÷àåì ñîñòîÿíèå ïðåäìåòîâ: /////
235 // Ñîõðàíÿåì ñîñòîÿíèå ïðåäìåòîâ:
239 ///// /////
241 ///// Ïîëó÷àåì ñîñòîÿíèå òðèããåðîâ: /////
243 // Ñîõðàíÿåì ñîñòîÿíèå òðèããåðîâ:
247 ///// /////
249 ///// Ïîëó÷àåì ñîñòîÿíèå îðóæèÿ: /////
251 // Ñîõðàíÿåì ñîñòîÿíèå îðóæèÿ:
255 ///// /////
257 ///// Ïîëó÷àåì ñîñòîÿíèå ìîíñòðîâ: /////
259 // Ñîõðàíÿåì ñîñòîÿíèå ìîíñòðîâ:
263 ///// /////
265 ///// Ïîëó÷àåì ñîñòîÿíèå òðóïîâ: /////
267 // Ñîõðàíÿåì ñîñòîÿíèå òðóïîâ:
271 ///// /////
273 ///// Ñîõðàíÿåì èãðîêîâ (â òîì ÷èñëå áîòîâ): /////
275 begin
279 begin
280 // Ïîëó÷àåì ñîñòîÿíèå èãðîêà:
282 // Ñîõðàíÿåì ñîñòîÿíèå èãðîêà:
289 // Âñå ëè èãðîêè íà ìåñòå:
291 begin
295 ///// /////
297 ///// Ìàðêåð îêîí÷àíèÿ: /////
299 // Ñòðîêà - îáîçíà÷åíèå êîíöà:
302 // Ñîõðàíÿåì ìàðêåð îêîí÷àíèÿ:
306 ///// /////
308 // Çàêðûâàåì ôàéë ñîõðàíåíèÿ:
312 except
314 begin
319 begin
330 var
338 Game_CoopMonstersKilled,
339 Game_CoopSecretsFound,
340 Game_CoopTotalMonstersKilled,
341 Game_CoopTotalSecretsFound,
342 Game_CoopTotalMonsters,
343 Game_CoopTotalSecrets,
348 begin
353 try
354 // Îòêðûâàåì ôàéë ñ ñîõðàíåíèåì:
358 begin
360 Exit;
364 //g_Game_Free(false); // don't free textures for the same map
370 ///// Çàãðóæàåì ñîñòîÿíèå èãðû: /////
373 // Èìÿ èãðû:
376 // Ïîëíûé ïóòü ê âàäó è êàðòà
379 if (Length(gCurrentMapFileName) <> 0) then e_LogWritefln('LOAD: previous map was ''%s''...', [gCurrentMapFileName]);
381 // À âîò òóò, íàêîíåö, ÷èñòèì ðåñóðñû
385 // Ïóòü ê êàðòå:
387 // Èìÿ êàðòû:
389 // Êîëè÷åñòâî èãðîêîâ:
391 // Èãðîâîå âðåìÿ:
393 // Òèï èãðû:
395 // Ðåæèì èãðû:
397 // Ëèìèò âðåìåíè:
399 // Ëèìèò î÷êîâ:
401 // Ëèìèò æèçíåé:
403 // Èãðîâûå îïöèè:
405 // Äëÿ êîîïà:
412 // Cîñòîÿíèå èãðû çàãðóæåíî:
415 ///// /////
417 ///// Çàãðóæàåì ñîñòîÿíèå îáëàñòåé ïðîñìîòðà: /////
422 begin
429 ///// /////
431 // Çàãðóæàåì êàðòó:
436 begin
437 // Íàñòðîéêè èãðû:
444 end
445 else
446 begin
447 // Íàñòðîéêè èãðû:
458 // Óñòàíîâêà ðàçìåðîâ îêîí èãðîêîâ:
461 // Çàãðóçêà è çàïóñê êàðòû:
463 begin
465 Exit;
468 // Íàñòðîéêè èãðîêîâ è áîòîâ:
471 // Óñòàíàâëèâàåì âðåìÿ:
473 // Âîçâðàùàåì ñòàòû:
481 ///// Çàãðóæàåì ñîñòîÿíèå êàðòû: /////
484 // Ñîñòîÿíèå êàðòû:
488 ///// /////
490 ///// Çàãðóæàåì ñîñòîÿíèå ïðåäìåòîâ: /////
493 // Ñîñòîÿíèå ïðåäìåòîâ:
497 ///// /////
499 ///// Çàãðóæàåì ñîñòîÿíèå òðèããåðîâ: /////
502 // Ñîñòîÿíèå òðèããåðîâ:
506 ///// /////
508 ///// Çàãðóæàåì ñîñòîÿíèå îðóæèÿ: /////
511 // Ñîñòîÿíèå îðóæèÿ:
515 ///// /////
517 ///// Çàãðóæàåì ñîñòîÿíèå ìîíñòðîâ: /////
520 // Ñîñòîÿíèå ìîíñòðîâ:
524 ///// /////
526 ///// Çàãðóæàåì ñîñòîÿíèå òðóïîâ: /////
529 // Ñîñòîÿíèå òðóïîâ:
533 ///// /////
535 ///// Çàãðóæàåì èãðîêîâ (â òîì ÷èñëå áîòîâ): /////
537 begin
538 // Çàãðóæàåì:
540 begin
541 // Çàãðóæàåì ñîñòîÿíèå èãðîêà:
544 // Ñîñòîÿíèå èãðîêà/áîòà:
550 // Ïðèâÿçûâàåì îñíîâíûõ èãðîêîâ ê îáëàñòÿì ïðîñìîòðà:
554 begin
562 begin
569 ///// /////
571 ///// Ìàðêåð îêîí÷àíèÿ: /////
574 // Ñòðîêà - îáîçíà÷åíèå êîíöà:
577 begin
580 // Ìàðêåð îêîí÷àíèÿ çàãðóæåí:
583 ///// /////
585 // Èùåì òðèããåðû ñ óñëîâèåì ñìåðòè ìîíñòðîâ:
589 // Çàêðûâàåì ôàéë çàãðóçêè:
594 except
596 begin
602 begin