Skip to content

Commit 6e1c9d2

Browse files
committed
import zorbash levels
1 parent 65f6637 commit 6e1c9d2

File tree

5 files changed

+11475
-470
lines changed

5 files changed

+11475
-470
lines changed

src/game.cpp

+39-3
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,8 @@ void Game::fini(void)
347347
}
348348
void game_fini(Gamep g)
349349
{
350+
TRACE_NO_INDENT();
351+
350352
if (! g) {
351353
return;
352354
}
@@ -356,10 +358,17 @@ void game_fini(Gamep g)
356358
game = NULL;
357359
}
358360

359-
void game_save_config(Gamep g) { g->save_config(); }
361+
void game_save_config(Gamep g)
362+
{
363+
TRACE_NO_INDENT();
364+
365+
g->save_config();
366+
}
360367

361368
void Game::set_seed(void)
362369
{
370+
TRACE_NO_INDENT();
371+
363372
if (g_opt_seed_name != "") {
364373
seed_name = g_opt_seed_name;
365374
} else {
@@ -372,9 +381,36 @@ void Game::set_seed(void)
372381
pcg_srand(seed);
373382
}
374383

375-
void game_set_seed(Gamep g) { g->set_seed(); }
384+
void game_set_seed(Gamep g)
385+
{
386+
TRACE_NO_INDENT();
387+
388+
g->set_seed();
389+
}
390+
391+
const char *game_get_seed(Gamep g)
392+
{
393+
TRACE_NO_INDENT();
394+
395+
return g->seed_name.c_str();
396+
}
397+
398+
uint32_t game_get_seed_num(Gamep g)
399+
{
400+
TRACE_NO_INDENT();
401+
402+
return g->seed;
403+
}
376404

377-
const char *game_get_seed(Gamep g) { return g->seed_name.c_str(); }
405+
void game_set_seed_for_thread(Gamep g, uint32_t seed)
406+
{
407+
TRACE_NO_INDENT();
408+
409+
//
410+
// Not saved in the class and is thread local
411+
//
412+
pcg_srand(seed);
413+
}
378414

379415
void Game::create_levels(void)
380416
{

src/level.cpp

+91-6
Original file line numberDiff line numberDiff line change
@@ -306,17 +306,96 @@ void level_map_set(Gamep g, Levelsp v, Levelp l, const char *in)
306306
bool need_floor = false;
307307

308308
switch (c) {
309-
case CHARMAP_CHASM : continue;
309+
case CHARMAP_CHASM :
310+
tp = nullptr; /* todo */
311+
continue;
310312
case CHARMAP_WALL :
311313
need_floor = true;
312314
tp = tp_wall;
313315
break;
314-
case CHARMAP_DOOR :
316+
case CHARMAP_JOIN :
315317
need_floor = true;
316318
tp = tp_door;
317319
break;
318-
case CHARMAP_TREASURE : break;
319-
case CHARMAP_MONST1 : break;
320+
case CHARMAP_TREASURE1 :
321+
need_floor = true;
322+
tp = nullptr; /* todo */
323+
break;
324+
case CHARMAP_TREASURE2 :
325+
need_floor = true;
326+
tp = nullptr; /* todo */
327+
break;
328+
case CHARMAP_TELEPORT :
329+
need_floor = true;
330+
tp = nullptr; /* todo */
331+
break;
332+
case CHARMAP_FOLIAGE :
333+
need_floor = true;
334+
tp = nullptr; /* todo */
335+
break;
336+
case CHARMAP_SHALLOW_WATER :
337+
need_floor = true;
338+
tp = nullptr; /* todo */
339+
break;
340+
case CHARMAP_DEEP_WATER :
341+
need_floor = true;
342+
tp = nullptr; /* todo */
343+
break;
344+
case CHARMAP_FOOD :
345+
need_floor = true;
346+
tp = nullptr; /* todo */
347+
break;
348+
case CHARMAP_BARREL :
349+
need_floor = true;
350+
tp = nullptr; /* todo */
351+
break;
352+
case CHARMAP_PILLAR :
353+
need_floor = true;
354+
tp = nullptr; /* todo */
355+
break;
356+
case CHARMAP_TRAP :
357+
need_floor = true;
358+
tp = nullptr; /* todo */
359+
break;
360+
case CHARMAP_LAVA :
361+
need_floor = true;
362+
tp = nullptr; /* todo */
363+
break;
364+
case CHARMAP_BRIDGE :
365+
tp = nullptr; /* todo */
366+
break;
367+
case CHARMAP_BRAZIER :
368+
need_floor = true;
369+
tp = nullptr; /* todo */
370+
break;
371+
case CHARMAP_DOOR :
372+
need_floor = true;
373+
tp = nullptr; /* todo */
374+
break;
375+
case CHARMAP_SECRET_DOOR :
376+
need_floor = true;
377+
tp = nullptr; /* todo */
378+
break;
379+
case CHARMAP_DRY_GRASS :
380+
need_floor = true;
381+
tp = nullptr; /* todo */
382+
break;
383+
case CHARMAP_MONST1 :
384+
need_floor = true;
385+
tp = nullptr; /* todo */
386+
break;
387+
case CHARMAP_MONST2 :
388+
need_floor = true;
389+
tp = nullptr; /* todo */
390+
break;
391+
case CHARMAP_MOB1 :
392+
need_floor = true;
393+
tp = nullptr; /* todo */
394+
break;
395+
case CHARMAP_MOB2 :
396+
need_floor = true;
397+
tp = nullptr; /* todo */
398+
break;
320399
case CHARMAP_START :
321400
need_floor = true;
322401
tp = tp_player;
@@ -325,8 +404,14 @@ void level_map_set(Gamep g, Levelsp v, Levelp l, const char *in)
325404
need_floor = true;
326405
tp = tp_exit;
327406
break;
328-
case CHARMAP_KEY : need_floor = true; break;
329-
case CHARMAP_FLOOR : need_floor = true; break;
407+
case CHARMAP_KEY :
408+
need_floor = true;
409+
tp = nullptr; /* todo */
410+
break;
411+
case CHARMAP_FLOOR :
412+
need_floor = true;
413+
tp = nullptr; /* todo */
414+
break;
330415
case CHARMAP_EMPTY : break;
331416
default : DIE("unexpected map char '%c'", c);
332417
}

0 commit comments

Comments
 (0)