|
294 | 294 | */
|
295 | 295 | #define NUM_ZAP 11 /* number of zap beam types */
|
296 | 296 |
|
297 |
| -#define GLYPH_MON_OFF 0 |
298 |
| -#define GLYPH_PET_OFF (NUMMONS + GLYPH_MON_OFF) |
299 |
| -#define GLYPH_INVIS_OFF (NUMMONS + GLYPH_PET_OFF) |
300 |
| -#define GLYPH_DETECT_OFF (1 + GLYPH_INVIS_OFF) |
301 |
| -#define GLYPH_BODY_OFF (NUMMONS + GLYPH_DETECT_OFF) |
302 |
| -#define GLYPH_RIDDEN_OFF (NUMMONS + GLYPH_BODY_OFF) |
303 |
| -#define GLYPH_OBJ_OFF (NUMMONS + GLYPH_RIDDEN_OFF) |
304 |
| -#define GLYPH_CMAP_OFF (NUM_OBJECTS + GLYPH_OBJ_OFF) |
305 |
| -#define GLYPH_EXPLODE_OFF ((MAXPCHARS - MAXEXPCHARS) + GLYPH_CMAP_OFF) |
306 |
| -#define GLYPH_ZAP_OFF ((MAXEXPCHARS * EXPL_MAX) + GLYPH_EXPLODE_OFF) |
307 |
| -#define GLYPH_SWALLOW_OFF ((NUM_ZAP << 2) + GLYPH_ZAP_OFF) |
308 |
| -#define GLYPH_WARNING_OFF ((NUMMONS << 3) + GLYPH_SWALLOW_OFF) |
309 |
| -#define GLYPH_STATUE_OFF (WARNCOUNT + GLYPH_WARNING_OFF) |
310 |
| -#define MAX_GLYPH (NUMMONS + GLYPH_STATUE_OFF) |
| 297 | +#define GLYPH_MON_OFF 0 |
| 298 | +#define GLYPH_PET_OFF (NUMMONS + GLYPH_MON_OFF) |
| 299 | +#define GLYPH_PEACEFUL_OFF (NUMMONS + GLYPH_PET_OFF) |
| 300 | +#define GLYPH_INVIS_OFF (NUMMONS + GLYPH_PEACEFUL_OFF) |
| 301 | +#define GLYPH_DETECT_OFF (1 + GLYPH_INVIS_OFF) |
| 302 | +#define GLYPH_BODY_OFF (NUMMONS + GLYPH_DETECT_OFF) |
| 303 | +#define GLYPH_RIDDEN_OFF (NUMMONS + GLYPH_BODY_OFF) |
| 304 | +#define GLYPH_OBJ_OFF (NUMMONS + GLYPH_RIDDEN_OFF) |
| 305 | +#define GLYPH_CMAP_OFF (NUM_OBJECTS + GLYPH_OBJ_OFF) |
| 306 | +#define GLYPH_EXPLODE_OFF ((MAXPCHARS - MAXEXPCHARS) + GLYPH_CMAP_OFF) |
| 307 | +#define GLYPH_ZAP_OFF ((MAXEXPCHARS * EXPL_MAX) + GLYPH_EXPLODE_OFF) |
| 308 | +#define GLYPH_SWALLOW_OFF ((NUM_ZAP << 2) + GLYPH_ZAP_OFF) |
| 309 | +#define GLYPH_WARNING_OFF ((NUMMONS << 3) + GLYPH_SWALLOW_OFF) |
| 310 | +#define GLYPH_STATUE_OFF (WARNCOUNT + GLYPH_WARNING_OFF) |
| 311 | +#define MAX_GLYPH (NUMMONS + GLYPH_STATUE_OFF) |
311 | 312 |
|
312 | 313 | #define NO_GLYPH MAX_GLYPH
|
313 | 314 | #define GLYPH_INVISIBLE GLYPH_INVIS_OFF
|
|
323 | 324 | ((int) what_mon(racial_mndx(mon), rng) + GLYPH_RIDDEN_OFF)
|
324 | 325 | #define pet_to_glyph(mon, rng) \
|
325 | 326 | ((int) what_mon(racial_mndx(mon), rng) + GLYPH_PET_OFF)
|
| 327 | +#define peaceful_to_glyph(mon, rng) \ |
| 328 | + ((int) what_mon(racial_mndx(mon), rng) + GLYPH_PEACEFUL_OFF) |
326 | 329 |
|
327 | 330 | /* This has the unfortunate side effect of needing a global variable */
|
328 | 331 | /* to store a result. 'otg_temp' is defined and declared in decl.{ch}. */
|
|
348 | 351 | : has_omonst(obj) && use_racial_glyph(OMONST(obj)) \
|
349 | 352 | ? (int) ERAC(OMONST(obj))->rmnum + GLYPH_STATUE_OFF \
|
350 | 353 | : (int) (obj)->corpsenm + GLYPH_STATUE_OFF)
|
351 |
| - |
352 | 354 |
|
353 | 355 | #define cmap_to_glyph(cmap_idx) ((int) (cmap_idx) + GLYPH_CMAP_OFF)
|
354 | 356 | #define explosion_to_glyph(expltype, idx) \
|
|
364 | 366 | #define detected_monnum_to_glyph(mnum) ((int) (mnum) + GLYPH_DETECT_OFF)
|
365 | 367 | #define ridden_monnum_to_glyph(mnum) ((int) (mnum) + GLYPH_RIDDEN_OFF)
|
366 | 368 | #define petnum_to_glyph(mnum) ((int) (mnum) + GLYPH_PET_OFF)
|
| 369 | +#define peacefulnum_to_glyph(mnum) ((int) (mnum) + GLYPH_PEACEFUL_OFF) |
367 | 370 |
|
368 | 371 | /* The hero's glyph when seen as a monster.
|
369 | 372 | */
|
|
387 | 390 | * to return).
|
388 | 391 | */
|
389 | 392 | #define glyph_to_mon(glyph) \
|
390 |
| - (glyph_is_normal_monster(glyph) \ |
391 |
| - ? ((glyph) - GLYPH_MON_OFF) \ |
392 |
| - : glyph_is_pet(glyph) \ |
393 |
| - ? ((glyph) - GLYPH_PET_OFF) \ |
394 |
| - : glyph_is_detected_monster(glyph) \ |
395 |
| - ? ((glyph) - GLYPH_DETECT_OFF) \ |
396 |
| - : glyph_is_ridden_monster(glyph) \ |
397 |
| - ? ((glyph) - GLYPH_RIDDEN_OFF) \ |
398 |
| - : glyph_is_statue(glyph) \ |
399 |
| - ? ((glyph) - GLYPH_STATUE_OFF) \ |
400 |
| - : NO_GLYPH) |
| 393 | + (glyph_is_normal_monster(glyph) \ |
| 394 | + ? ((glyph) - GLYPH_MON_OFF) \ |
| 395 | + : glyph_is_pet(glyph) \ |
| 396 | + ? ((glyph) - GLYPH_PET_OFF) \ |
| 397 | + : glyph_is_peaceful(glyph) \ |
| 398 | + ? ((glyph) - GLYPH_PEACEFUL_OFF) \ |
| 399 | + : glyph_is_detected_monster(glyph) \ |
| 400 | + ? ((glyph) - GLYPH_DETECT_OFF) \ |
| 401 | + : glyph_is_ridden_monster(glyph) \ |
| 402 | + ? ((glyph) - GLYPH_RIDDEN_OFF) \ |
| 403 | + : glyph_is_statue(glyph) \ |
| 404 | + ? ((glyph) - GLYPH_STATUE_OFF) \ |
| 405 | + : NO_GLYPH) |
401 | 406 | #define glyph_to_obj(glyph) \
|
402 | 407 | (glyph_is_body(glyph) \
|
403 | 408 | ? CORPSE \
|
|
420 | 425 | * Return true if the given glyph is what we want. Note that bodies are
|
421 | 426 | * considered objects.
|
422 | 427 | */
|
423 |
| -#define glyph_is_monster(glyph) \ |
424 |
| - (glyph_is_normal_monster(glyph) || glyph_is_pet(glyph) \ |
425 |
| - || glyph_is_ridden_monster(glyph) || glyph_is_detected_monster(glyph)) |
| 428 | +#define glyph_is_monster(glyph) \ |
| 429 | + (glyph_is_normal_monster(glyph) || glyph_is_pet(glyph) \ |
| 430 | + || glyph_is_peaceful(glyph) || glyph_is_ridden_monster(glyph) \ |
| 431 | + || glyph_is_detected_monster(glyph)) |
426 | 432 | #define glyph_is_normal_monster(glyph) \
|
427 | 433 | ((glyph) >= GLYPH_MON_OFF && (glyph) < (GLYPH_MON_OFF + NUMMONS))
|
428 | 434 | #define glyph_is_pet(glyph) \
|
429 | 435 | ((glyph) >= GLYPH_PET_OFF && (glyph) < (GLYPH_PET_OFF + NUMMONS))
|
| 436 | +#define glyph_is_peaceful(glyph) \ |
| 437 | + ((glyph) >= GLYPH_PEACEFUL_OFF && (glyph) < (GLYPH_PEACEFUL_OFF + NUMMONS)) |
430 | 438 | #define glyph_is_body(glyph) \
|
431 | 439 | ((glyph) >= GLYPH_BODY_OFF && (glyph) < (GLYPH_BODY_OFF + NUMMONS))
|
432 | 440 |
|
|
0 commit comments