Move light source and timer types so zero means none

Breaks saves and bones.
This commit is contained in:
Pasi Kallinen
2024-05-06 19:52:05 +03:00
parent dba37fa768
commit 7139ee7446
5 changed files with 21 additions and 9 deletions

View File

@@ -17,7 +17,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 102
#define EDITLEVEL 103
/*
* Development status possibilities.

View File

@@ -10,11 +10,12 @@ typedef void (*timeout_proc)(ANY_P *, long);
/* kind of timer */
enum timer_type {
TIMER_LEVEL = 0, /* event specific to level [melting ice] */
TIMER_GLOBAL = 1, /* event follows current play [not used] */
TIMER_OBJECT = 2, /* event follows an object [various] */
TIMER_MONSTER = 3, /* event follows a monster [not used] */
NUM_TIMER_KINDS /* 4 */
TIMER_NONE = 0,
TIMER_LEVEL = 1, /* event specific to level [melting ice] */
TIMER_GLOBAL = 2, /* event follows current play [not used] */
TIMER_OBJECT = 3, /* event follows an object [various] */
TIMER_MONSTER = 4, /* event follows a monster [not used] */
NUM_TIMER_KINDS /* 5 */
};
/* save/restore timer ranges */

View File

@@ -12,8 +12,12 @@
/*
* Light source sources
*/
#define LS_OBJECT 0
#define LS_MONSTER 1
enum ls_sources {
LS_NONE = 0,
LS_OBJECT = 1,
LS_MONSTER = 2,
NUM_LS_SOURCES
};
/*
* cansee() - Returns true if the hero can see the location.

View File

@@ -103,6 +103,10 @@ del_light_source(int type, anything *id)
has only been partially restored during a level change
(in particular: chameleon vs prot. from shape changers) */
switch (type) {
case LS_NONE:
impossible("del_light_source:type=none");
tmp_id.a_uint = 0;
break;
case LS_OBJECT:
tmp_id.a_uint = id->a_obj ? id->a_obj->o_id : 0;
break;

View File

@@ -1942,6 +1942,9 @@ staticfn const char *
kind_name(short kind)
{
switch (kind) {
case TIMER_NONE:
impossible("no timer type");
return "none";
case TIMER_LEVEL:
return "level";
case TIMER_GLOBAL:
@@ -2179,7 +2182,7 @@ start_timer(
{
timer_element *gnu, *dup;
if (kind < 0 || kind >= NUM_TIMER_KINDS
if (kind <= TIMER_NONE || kind >= NUM_TIMER_KINDS
|| func_index < 0 || func_index >= NUM_TIME_FUNCS)
panic("start_timer (%s: %d)", kind_name(kind), (int) func_index);