Mercurial > hg > early-roguelike
annotate urogue/state.c @ 315:ad2570b5b21f
Advanced Rogue 5, 7: fix some trading post messages.
When attempting to buy an unaffordable object, messages were often of
the form "You can't afford that a scroll of hold monster !", because
the object description (stored in curpurch) was the same text used in
inventory displays.
This has been worked around by inspecting the contents of curpurch and
using different message templates.
author | John "Elwin" Edwards |
---|---|
date | Sun, 24 Oct 2021 20:26:21 -0400 |
parents | 0250220d8cdd |
children |
rev | line source |
---|---|
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1 /* |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
2 state.c - Portable Rogue Save State Code |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
3 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
4 Copyright (C) 1993, 1995 Nicholas J. Kisseberth |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
5 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
6 Redistribution and use in source and binary forms, with or without |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
7 modification, are permitted provided that the following conditions |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
8 are met: |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
9 1. Redistributions of source code must retain the above copyright |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
10 notice, this list of conditions and the following disclaimer. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
11 2. Redistributions in binary form must reproduce the above copyright |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
12 notice, this list of conditions and the following disclaimer in the |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
13 documentation and/or other materials provided with the distribution. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
14 3. Neither the name(s) of the author(s) nor the names of other contributors |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
15 may be used to endorse or promote products derived from this software |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
16 without specific prior written permission. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
17 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
18 THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTORS ``AS IS'' AND |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
20 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
21 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTORS BE LIABLE |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
22 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
23 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
24 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
25 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
26 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
27 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
28 SUCH DAMAGE. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
29 */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
30 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
31 /* |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
32 Notes |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
33 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
34 Should move all game variables into one place |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
35 Should move save/restore code into save.c or some such |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
36 */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
37 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
38 #include <assert.h> |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
39 #include <stdlib.h> |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
40 #include <string.h> |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
41 #include "rogue.h" |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
42 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
43 /* |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
44 Variables for global game state. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
45 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
46 All variables that need to get saved when saving a game |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
47 are defined in this file. Long term goal is to move many |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
48 of these variables into a "struct level" data type of some |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
49 kind... perhaps not, maybe struct game... |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
50 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
51 Other global variables that don't need to get saved are |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
52 kept in main.c. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
53 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
54 Other global variables that don't change during the course |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
55 of a game are kept in urogue.c, monsdata.c, data.c. |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
56 */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
57 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
58 #define _X_ { 0, 0, 0, 0, 0 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
59 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
60 struct delayed_action |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
61 d_list[MAXDAEMONS] = /* daemon/fuse list */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
62 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
63 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
64 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
65 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
66 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
67 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
68 _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
69 }; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
70 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
71 #undef _X_ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
72 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
73 char *s_names[MAXSCROLLS]; /* Names of the scrolls */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
74 char *p_colors[MAXPOTIONS]; /* Colors of the potions */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
75 char *r_stones[MAXRINGS]; /* Stone settings of the rings */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
76 char *ws_made[MAXSTICKS]; /* What sticks are made of */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
77 char *ws_type[MAXSTICKS]; /* Is it a wand or a staff */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
78 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
79 char *guess_items[MAXMAGICTYPES][MAXMAGICITEMS]; /* guess magic is */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
80 int know_items[MAXMAGICTYPES][MAXMAGICITEMS]; /* flag knowlede of magic */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
81 /* object data */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
82 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
83 struct trap traps[2 * MAXTRAPS]; /* 2x for special effects */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
84 struct room rooms[MAXROOMS]; /* One for each room -- A level */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
85 struct room *oldrp = NULL; /* Roomin(&player.t_oldpos) */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
86 struct thing player; /* The rogue */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
87 struct linked_list *lvl_obj = NULL; /* Treasure on this level */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
88 struct linked_list *fam_ptr = NULL; /* A ptr to the familiar */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
89 struct linked_list *mlist = NULL; /* Monsters on this level */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
90 struct thing *beast; /* The last beast that attacked */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
91 struct object *cur_armor = NULL; /* what rogue wears */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
92 struct object *cur_weapon = NULL; /* ... and wields */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
93 struct object *cur_ring[10]; /* His rings */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
94 struct linked_list *curr_mons = NULL; /* The mons. currently moving */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
95 struct linked_list *next_mons = NULL; /* The mons. after curr_mons */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
96 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
97 /* Misc. game state info */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
98 char dummybuf1[50000]; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
99 char dummybuf2[50000]; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
100 char msgbuf[10][2*LINELEN]; /* message buffer history */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
101 int msg_index = 0; /* index in msg history buffer for nxt msg */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
102 int foodlev = 1; /* how fast he eats food */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
103 int ntraps = 0; /* Number of traps on this level */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
104 int dnum = 0; /* Dungeon number */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
105 int max_level = 0; /* Deepest player has gone */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
106 int lost_dext = 0; /* amount of lost dexterity */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
107 int no_command = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
108 int level = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
109 int see_dist = 3; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
110 int no_food = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
111 int count = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
112 int food_left = HUNGERTIME; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
113 int group = 1; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
114 int hungry_state = F_OK; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
115 int infest_dam = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
116 int lost_str = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
117 int hold_count = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
118 int trap_tries = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
119 int has_artifact = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
120 int picked_artifact = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
121 int luck = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
122 int resurrect = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
123 int fam_type = 0; /* The type of familiar */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
124 int mons_summoned = 0; /* Number of summoned monsters */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
125 char PLAYER = VPLAYER; /* what the player looks like */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
126 char take = 0; /* Thing the rogue is taking */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
127 char runch = 0; /* Direction player is running */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
128 int char_type = C_NOTSET; /* what type of character is player */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
129 int inv_type = INV_CLEAR; /* Overwrite style of inventory */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
130 int pool_teleport = FALSE; /* just teleported from a pool */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
131 int inwhgt = FALSE; /* true if from wghtchk() */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
132 int after = 0; /* True if we want after daemons */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
133 int waswizard = 0; /* Was a wizard sometime */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
134 int canwizard = 1; /* Will be permitted to do this */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
135 int playing = TRUE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
136 int running = FALSE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
137 int fighting = FALSE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
138 int wizard = FALSE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
139 int wiz_verbose = TRUE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
140 int moving = FALSE; |
259 | 141 int use_savedir = FALSE; |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
142 coord delta; /* Change indicated to get_dir() */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
143 LEVTYPE levtype; /* type of level i'm on */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
144 long purse = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
145 unsigned long total = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
146 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
147 WINDOW *cw; /* Window that the player sees */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
148 WINDOW *hw; /* Used for the help command */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
149 WINDOW *mw; /* Used to store mosnters */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
150 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
151 /* options.o */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
152 /* game options */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
153 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
154 int terse = FALSE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
155 int door_stop = FALSE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
156 int jump = TRUE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
157 int doorstop = TRUE; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
158 int firstmove = FALSE; |
292
ebf49a933e51
UltraRogue: ask about unidentified magic items by default.
John "Elwin" Edwards
parents:
263
diff
changeset
|
159 int askme = TRUE; |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
160 char whoami[2 * LINELEN]; /* Name of player */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
161 char fruit[2 * LINELEN]; /* Favorite fruit */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
162 char file_name[2 * LINELEN]; /* Save file name */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
163 char score_file[2 * LINELEN]; /* Score file name */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
164 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
165 /****************************************************************************/ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
166 /* Portable Save State Code */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
167 /* */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
168 /* UltraRogue v1.04 */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
169 /****************************************************************************/ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
170 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
171 #define URS_STATS 0xABCD0001 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
172 #define URS_THING 0xABCD0002 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
173 #define URS_OBJECT 0xABCD0003 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
174 #define URS_MAGIC 0xABCD0004 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
175 #define URS_KNOWS 0xABCD0005 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
176 #define URS_GUESSES 0xABCD0006 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
177 #define URS_STACKOBJECT 0xABCD0007 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
178 #define URS_BAGOBJECT 0xABCD0008 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
179 #define URS_MONSTERLIST 0xABCD0009 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
180 #define URS_MONSTERSTATS 0xABCD000A |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
181 #define URS_MONSTER 0xABCD000B |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
182 #define URS_TRAP 0xABCD000C |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
183 #define URS_WINDOW 0xABCD000D |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
184 #define URS_DAEMONS 0xABCD000E |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
185 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
186 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
187 ur_write(FILE *savef, void *ptr, size_t size) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
188 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
189 if (size == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
190 return; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
191 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
192 fwrite(ptr,size,1,savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
193 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
194 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
195 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
196 ur_read(FILE *savef, void *ptr, size_t size) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
197 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
198 if (size == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
199 return; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
200 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
201 fread(ptr,size,1,savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
202 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
203 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
204 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
205 ur_write_int(FILE *savef, int c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
206 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
207 ur_write(savef,&c,sizeof(int)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
208 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
209 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
210 int |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
211 ur_read_int(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
212 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
213 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
214 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
215 ur_read(savef, &i, sizeof(int)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
216 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
217 return(i); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
218 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
219 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
220 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
221 ur_write_short(FILE *savef, short c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
222 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
223 ur_write(savef,&c,sizeof(short)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
224 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
225 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
226 short |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
227 ur_read_short(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
228 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
229 short s; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
230 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
231 ur_read(savef, &s, sizeof(short)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
232 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
233 return(s); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
234 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
235 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
236 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
237 ur_write_long(FILE *savef, long c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
238 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
239 ur_write(savef,&c,sizeof(long)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
240 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
241 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
242 long |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
243 ur_read_long(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
244 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
245 long l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
246 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
247 ur_read(savef, &l, sizeof(long)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
248 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
249 return(l); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
250 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
251 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
252 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
253 ur_write_ulong(FILE *savef, unsigned long c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
254 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
255 ur_write(savef,&c,sizeof(unsigned long)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
256 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
257 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
258 unsigned long |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
259 ur_read_ulong(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
260 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
261 long l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
262 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
263 ur_read(savef, &l, sizeof(unsigned long)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
264 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
265 return(l); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
266 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
267 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
268 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
269 ur_unread_long(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
270 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
271 fseek(savef, -(long)sizeof(long), SEEK_CUR); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
272 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
273 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
274 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
275 ur_write_char(FILE *savef, char c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
276 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
277 ur_write(savef,&c,sizeof(char)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
278 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
279 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
280 char |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
281 ur_read_char(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
282 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
283 char c; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
284 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
285 ur_read(savef, &c, sizeof(char)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
286 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
287 return(c); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
288 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
289 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
290 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
291 ur_write_string(FILE *savef, char *s) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
292 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
293 size_t len; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
294 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
295 len = (s == NULL) ? 0L : strlen(s) + 1 ; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
296 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
297 ur_write_long(savef, (long) len); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
298 ur_write(savef,s,len); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
299 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
300 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
301 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
302 char * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
303 ur_read_string(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
304 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
305 size_t len; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
306 char *buf; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
307 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
308 len = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
309 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
310 if (len == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
311 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
312 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
313 buf = ur_alloc(len); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
314 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
315 if (buf == NULL) /* Should flag a global error condition... */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
316 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
317 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
318 ur_read(savef,buf,len); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
319 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
320 return(buf); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
321 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
322 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
323 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
324 ur_write_coord(FILE *savef, coord c) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
325 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
326 ur_write_int(savef, c.x); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
327 ur_write_int(savef, c.y); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
328 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
329 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
330 coord |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
331 ur_read_coord(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
332 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
333 coord c; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
334 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
335 c.x = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
336 c.y = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
337 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
338 return(c); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
339 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
340 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
341 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
342 ur_write_room(FILE *savef, struct room *r) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
343 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
344 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
345 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
346 ur_write_coord(savef, r->r_pos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
347 ur_write_coord(savef, r->r_max); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
348 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
349 for(i=0; i<MAXDOORS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
350 ur_write_coord(savef, r->r_exit[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
351 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
352 ur_write_int(savef, r->r_flags); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
353 ur_write_int(savef, r->r_nexits); |
258 | 354 ur_write_short(savef, r->r_fires); |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
355 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
356 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
357 struct room * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
358 ur_read_room(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
359 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
360 struct room *r; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
361 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
362 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
363 r = ur_alloc( sizeof(struct room) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
364 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
365 r->r_pos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
366 r->r_max = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
367 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
368 for(i=0; i<MAXDOORS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
369 r->r_exit[i] = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
370 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
371 r->r_flags = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
372 r->r_nexits = ur_read_int(savef); |
258 | 373 r->r_fires = ur_read_short(savef); |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
374 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
375 return(r); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
376 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
377 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
378 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
379 ur_write_object(FILE *savef, struct object *o) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
380 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
381 int other; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
382 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
383 ur_write_long(savef, URS_OBJECT); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
384 ur_write_coord(savef, o->o_pos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
385 ur_write_string(savef, o->o_text); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
386 ur_write_string(savef, o->o_damage); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
387 ur_write_string(savef, o->o_hurldmg); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
388 ur_write_long(savef, o->o_flags); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
389 ur_write_long(savef, o->ar_flags); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
390 ur_write_char(savef, o->o_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
391 ur_write_int(savef, o->o_ident); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
392 ur_write_int(savef, o->o_count); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
393 ur_write_int(savef, o->o_which); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
394 ur_write_int(savef, o->o_hplus); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
395 ur_write_int(savef, o->o_dplus); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
396 ur_write_int(savef, o->o_ac); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
397 ur_write_int(savef, o->o_group); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
398 ur_write_int(savef, o->o_weight); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
399 ur_write_char(savef, o->o_launch); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
400 ur_write(savef, &o->o_mark[0], MARKLEN); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
401 ur_write_long(savef, o->o_worth); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
402 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
403 other = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
404 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
405 if (o->o_bag) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
406 other = 1; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
407 else if (o->next_obj) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
408 other |= 2; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
409 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
410 ur_write_int(savef,other); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
411 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
412 if (o->o_bag) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
413 ur_write_bag(savef,o->o_bag); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
414 if (o->next_obj && (o->next_obj->l_prev == NULL) ) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
415 ur_write_object_stack(savef, o->next_obj); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
416 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
417 |
296
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
418 /* |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
419 * Puts objects with identifiers into the global ident_list, keeping it sorted |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
420 * by type and identifier. |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
421 */ |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
422 void |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
423 add_to_ident(struct object *o) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
424 { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
425 extern linked_list *ident_list; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
426 linked_list *obj_ll; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
427 linked_list *list_p, *prev_p = NULL; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
428 struct object *list_o; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
429 |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
430 obj_ll = new_list(); |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
431 obj_ll->data.obj = o; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
432 |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
433 for (list_p = ident_list; list_p != NULL; list_p = next(list_p)) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
434 { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
435 list_o = list_p->data.obj; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
436 if (list_o->o_type == o->o_type) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
437 { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
438 if (list_o->o_ident > o->o_ident) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
439 { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
440 prev_p = list_p->l_prev; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
441 break; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
442 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
443 else if (next(list_p) && |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
444 next(list_p)->data.obj->o_type != o->o_type) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
445 { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
446 prev_p = list_p; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
447 break; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
448 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
449 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
450 if (!next(list_p)) |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
451 prev_p = list_p; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
452 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
453 _attach_after(&ident_list, prev_p, obj_ll); |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
454 return; |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
455 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
456 |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
457 struct object * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
458 ur_read_object(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
459 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
460 struct object *o; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
461 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
462 int other; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
463 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
464 o = ur_alloc(sizeof(struct object)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
465 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
466 if (o == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
467 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
468 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
469 memset(o,0,sizeof(struct object)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
470 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
471 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
472 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
473 assert(id == URS_OBJECT); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
474 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
475 o->o_pos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
476 o->o_text = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
477 o->o_damage = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
478 o->o_hurldmg = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
479 o->o_flags = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
480 o->ar_flags = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
481 o->o_type = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
482 o->o_ident = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
483 o->o_count = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
484 o->o_which = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
485 o->o_hplus = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
486 o->o_dplus = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
487 o->o_ac = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
488 o->o_group = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
489 o->o_weight = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
490 o->o_launch = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
491 ur_read(savef, &o->o_mark[0], MARKLEN); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
492 o->o_worth = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
493 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
494 other = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
495 |
296
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
496 if (o->o_ident != 0) { |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
497 /* The object needs to be placed in the identifiers list. */ |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
498 add_to_ident(o); |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
499 } |
000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
John "Elwin" Edwards
parents:
292
diff
changeset
|
500 |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
501 if (other & 1) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
502 o->o_bag = ur_read_bag(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
503 if (other & 2) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
504 o->next_obj = ur_read_object_stack(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
505 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
506 return(o); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
507 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
508 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
509 int |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
510 list_size(struct linked_list *l) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
511 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
512 int cnt=0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
513 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
514 if (l == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
515 return(0); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
516 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
517 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
518 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
519 cnt++; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
520 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
521 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
522 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
523 return(cnt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
524 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
525 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
526 int |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
527 find_thing_index(struct linked_list *l, struct thing *item) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
528 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
529 int cnt=0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
530 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
531 if (l == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
532 return(-1); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
533 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
534 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
535 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
536 if (item == l->data.th) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
537 return(cnt+1); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
538 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
539 cnt++; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
540 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
541 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
542 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
543 return(0); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
544 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
545 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
546 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
547 int |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
548 find_list_index(struct linked_list *l, struct object *item) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
549 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
550 int cnt=0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
551 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
552 if (l == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
553 return(-1); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
554 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
555 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
556 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
557 if (item == l->data.obj) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
558 return(cnt+1); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
559 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
560 cnt++; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
561 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
562 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
563 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
564 return(0); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
565 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
566 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
567 struct object * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
568 find_object(struct linked_list *list, int num) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
569 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
570 int cnt = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
571 struct linked_list *l = list; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
572 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
573 if ( (num < 1) || (list == NULL) ) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
574 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
575 |
300
0250220d8cdd
Fix an assortment of compiler warnings.
John "Elwin" Edwards
parents:
296
diff
changeset
|
576 num--; |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
577 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
578 for(cnt = 0; cnt < num; cnt++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
579 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
580 if ( l == NULL ) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
581 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
582 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
583 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
584 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
585 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
586 return(l->data.obj); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
587 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
588 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
589 struct thing * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
590 find_thing(struct linked_list *list, int num) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
591 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
592 int cnt = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
593 struct linked_list *l = list; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
594 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
595 if ( (num < 1) || (list == NULL) ) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
596 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
597 num--; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
598 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
599 for(cnt = 0; cnt < num; cnt++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
600 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
601 if (l == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
602 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
603 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
604 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
605 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
606 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
607 return(l->data.th); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
608 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
609 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
610 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
611 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
612 ur_write_object_stack(FILE *savef, struct linked_list *l) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
613 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
614 int cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
615 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
616 ur_write_long(savef, URS_STACKOBJECT); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
617 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
618 ur_write_int(savef, cnt = list_size(l) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
619 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
620 if (cnt == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
621 return; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
622 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
623 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
624 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
625 ur_write_object(savef, l->data.obj); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
626 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
627 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
628 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
629 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
630 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
631 ur_write_bag(FILE *savef, struct linked_list *l) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
632 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
633 int cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
634 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
635 ur_write_long(savef, URS_BAGOBJECT); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
636 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
637 ur_write_int(savef, cnt = list_size(l) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
638 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
639 if (cnt == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
640 return; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
641 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
642 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
643 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
644 ur_write_object(savef, l->data.obj); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
645 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
646 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
647 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
648 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
649 struct linked_list * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
650 ur_read_object_stack(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
651 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
652 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
653 int i,cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
654 struct linked_list *l = NULL, *previous = NULL, *head = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
655 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
656 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
657 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
658 assert(id == URS_STACKOBJECT); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
659 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
660 cnt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
661 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
662 for(i = 0; i < cnt; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
663 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
664 l = new_list(); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
665 l->l_prev = previous; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
666 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
667 if (previous != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
668 previous->l_next = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
669 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
670 l->data.obj = ur_read_object(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
671 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
672 if (previous == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
673 head = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
674 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
675 previous = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
676 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
677 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
678 if (l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
679 l->l_next = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
680 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
681 return(head); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
682 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
683 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
684 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
685 struct linked_list * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
686 ur_read_bag(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
687 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
688 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
689 int i,cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
690 struct linked_list *l = NULL, *previous = NULL, *head = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
691 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
692 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
693 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
694 assert( id == URS_BAGOBJECT ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
695 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
696 cnt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
697 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
698 for(i = 0; i < cnt; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
699 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
700 l = new_list(); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
701 l->l_prev = previous; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
702 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
703 if (previous != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
704 previous->l_next = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
705 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
706 l->data.obj = ur_read_object(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
707 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
708 if (previous == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
709 head = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
710 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
711 previous = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
712 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
713 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
714 if (l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
715 l->l_next = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
716 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
717 return(head); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
718 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
719 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
720 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
721 ur_fixup_monsters(struct linked_list *l) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
722 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
723 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
724 { |
262
c7c6c5a7d840
UltraRogue: fix a segfault related to restoring monsters.
John "Elwin" Edwards
parents:
260
diff
changeset
|
725 if (l->data.th->chasee_index == -1L) |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
726 l->data.th->t_chasee = &player; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
727 else |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
728 l->data.th->t_chasee = find_thing(mlist, l->data.th->chasee_index); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
729 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
730 l->data.th->t_horde = find_object(lvl_obj, l->data.th->horde_index); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
731 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
732 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
733 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
734 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
735 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
736 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
737 ur_write_monsters(FILE *savef, struct linked_list *l) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
738 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
739 int cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
740 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
741 ur_write_long(savef, URS_MONSTERLIST); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
742 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
743 cnt = list_size(l); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
744 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
745 ur_write_int(savef, cnt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
746 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
747 if (cnt < 1) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
748 return; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
749 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
750 while(l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
751 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
752 ur_write_thing(savef, l->data.th); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
753 l = l->l_next; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
754 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
755 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
756 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
757 struct linked_list * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
758 ur_read_monsters(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
759 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
760 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
761 int i,cnt; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
762 struct linked_list *l=NULL, *previous = NULL, *head = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
763 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
764 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
765 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
766 assert(id == URS_MONSTERLIST); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
767 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
768 cnt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
769 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
770 if (cnt == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
771 return(NULL); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
772 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
773 for(i = 0; i < cnt; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
774 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
775 l = new_list(); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
776 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
777 l->l_prev = previous; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
778 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
779 if (previous != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
780 previous->l_next = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
781 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
782 l->data.th = ur_read_thing(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
783 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
784 if (previous == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
785 head = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
786 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
787 previous = l; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
788 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
789 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
790 if (l != NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
791 l->l_next = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
792 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
793 return(head); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
794 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
795 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
796 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
797 ur_write_monster_stats(FILE *savef, struct mstats *m) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
798 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
799 ur_write_long(savef, URS_MONSTERSTATS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
800 ur_write_short(savef, m->s_str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
801 ur_write_long(savef, m->s_exp); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
802 ur_write_int(savef, m->s_lvl); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
803 ur_write_int(savef, m->s_arm); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
804 ur_write_string(savef, m->s_hpt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
805 ur_write_string(savef, m->s_dmg); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
806 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
807 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
808 struct mstats * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
809 ur_read_monster_stats(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
810 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
811 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
812 struct mstats *m; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
813 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
814 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
815 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
816 assert(id == URS_MONSTERSTATS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
817 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
818 m = ur_alloc( sizeof(struct mstats) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
819 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
820 m->s_str = ur_read_short(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
821 m->s_exp = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
822 m->s_lvl = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
823 m->s_arm = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
824 m->s_hpt = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
825 m->s_dmg = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
826 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
827 return(m); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
828 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
829 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
830 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
831 ur_write_monster(FILE *savef, struct monster *m) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
832 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
833 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
834 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
835 ur_write_long(savef, URS_MONSTER); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
836 ur_write_string(savef, m->m_name); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
837 ur_write_short(savef, m->m_carry); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
838 ur_write_int(savef, m->m_normal); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
839 ur_write_int(savef, m->m_wander); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
840 ur_write_char(savef, m->m_appear); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
841 ur_write_string(savef, m->m_intel); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
842 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
843 for(i = 0; i < 10; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
844 ur_write_long(savef, m->m_flags[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
845 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
846 ur_write_string(savef, m->m_typesum); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
847 ur_write_short(savef, m->m_numsum); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
848 ur_write_short(savef, m->m_add_exp); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
849 ur_write_monster_stats(savef, &m->m_stats); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
850 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
851 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
852 struct monster * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
853 ur_read_monster(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
854 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
855 struct monster *m; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
856 struct mstats *mstats; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
857 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
858 m = ur_alloc( sizeof(struct monster) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
859 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
860 m->m_name = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
861 m->m_carry = ur_read_short(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
862 m->m_normal = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
863 m->m_wander = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
864 m->m_appear = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
865 m->m_intel = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
866 ur_read(savef, &m->m_flags[0], 10*sizeof(long)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
867 m->m_typesum = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
868 m->m_numsum = ur_read_short(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
869 m->m_add_exp = ur_read_short(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
870 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
871 mstats = ur_read_monster_stats(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
872 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
873 m->m_stats = *mstats; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
874 ur_free(mstats); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
875 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
876 return(m); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
877 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
878 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
879 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
880 ur_write_trap(FILE *savef, struct trap *t) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
881 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
882 ur_write_long(savef, URS_TRAP); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
883 ur_write_coord(savef, t->tr_pos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
884 ur_write_long(savef, t->tr_flags); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
885 ur_write_char(savef, t->tr_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
886 ur_write_char(savef, t->tr_show); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
887 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
888 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
889 struct trap * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
890 ur_read_trap(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
891 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
892 struct trap *t; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
893 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
894 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
895 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
896 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
897 assert(id == URS_TRAP); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
898 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
899 t = ur_alloc( sizeof(struct trap)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
900 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
901 t->tr_pos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
902 t->tr_flags = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
903 t->tr_type = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
904 t->tr_show = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
905 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
906 return(t); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
907 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
908 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
909 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
910 ur_write_stats(FILE *savef, struct stats *s) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
911 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
912 ur_write_long(savef, URS_STATS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
913 ur_write_string(savef, s->s_dmg); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
914 ur_write_long(savef, s->s_exp); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
915 ur_write_int(savef, s->s_hpt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
916 ur_write_int(savef, s->s_pack); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
917 ur_write_int(savef, s->s_carry); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
918 ur_write_int(savef, s->s_lvl); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
919 ur_write_int(savef, s->s_arm); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
920 ur_write_int(savef, s->s_acmod); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
921 ur_write_int(savef, s->s_power); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
922 ur_write_int(savef, s->s_str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
923 ur_write_int(savef, s->s_intel); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
924 ur_write_int(savef, s->s_wisdom); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
925 ur_write_int(savef, s->s_dext); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
926 ur_write_int(savef, s->s_const); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
927 ur_write_int(savef, s->s_charisma); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
928 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
929 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
930 struct stats * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
931 ur_read_stats(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
932 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
933 struct stats *s; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
934 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
935 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
936 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
937 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
938 assert(id == URS_STATS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
939 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
940 s = ur_alloc(sizeof(struct stats)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
941 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
942 s->s_dmg = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
943 s->s_exp = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
944 s->s_hpt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
945 s->s_pack = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
946 s->s_carry = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
947 s->s_lvl = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
948 s->s_arm = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
949 s->s_acmod = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
950 s->s_power = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
951 s->s_str = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
952 s->s_intel = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
953 s->s_wisdom = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
954 s->s_dext = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
955 s->s_const = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
956 s->s_charisma = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
957 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
958 return(s); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
959 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
960 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
961 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
962 ur_write_thing(FILE *savef, struct thing *t) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
963 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
964 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
965 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
966 ur_write_long(savef, URS_THING); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
967 ur_write_bag(savef, t->t_pack); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
968 ur_write_stats(savef, &t->t_stats); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
969 ur_write_stats(savef, &t->maxstats); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
970 ur_write_int(savef, t->t_ischasing); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
971 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
972 if (t->t_chasee == &player) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
973 ur_write_long(savef, -1L); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
974 else if (t->t_chasee == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
975 ur_write_long(savef, 0L); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
976 else |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
977 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
978 long m; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
979 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
980 m = find_thing_index(mlist, t->t_chasee); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
981 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
982 ur_write_long(savef,m); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
983 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
984 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
985 ur_write_long(savef, find_list_index(lvl_obj, t->t_horde)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
986 ur_write_coord(savef, t->t_pos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
987 ur_write_coord(savef, t->t_oldpos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
988 ur_write_coord(savef, t->t_nxtpos); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
989 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
990 for(i = 0; i < 16; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
991 ur_write_long(savef, t->t_flags[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
992 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
993 ur_write_int(savef, t->t_praycnt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
994 ur_write_int(savef, t->t_trans); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
995 ur_write_int(savef, t->t_turn); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
996 ur_write_int(savef, t->t_wasshot); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
997 ur_write_int(savef, t->t_ctype); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
998 ur_write_int(savef, t->t_index); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
999 ur_write_int(savef, t->t_no_move); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1000 ur_write_int(savef, t->t_rest_hpt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1001 ur_write_int(savef, t->t_rest_pow); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1002 ur_write_int(savef, t->t_doorgoal); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1003 ur_write_char(savef, t->t_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1004 ur_write_char(savef, t->t_disguise); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1005 ur_write_char(savef, t->t_oldch); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1006 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1007 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1008 struct thing * |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1009 ur_read_thing(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1010 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1011 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1012 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1013 struct thing *t; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1014 struct stats *s; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1015 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1016 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1017 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1018 assert(id == URS_THING); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1019 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1020 t = ur_alloc( sizeof(struct thing) ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1021 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1022 t->t_pack = ur_read_bag(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1023 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1024 s = ur_read_stats(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1025 t->t_stats = *s; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1026 ur_free(s); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1027 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1028 s = ur_read_stats(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1029 t->maxstats = *s; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1030 ur_free(s); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1031 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1032 t->t_ischasing = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1033 t->chasee_index = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1034 t->horde_index = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1035 t->t_pos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1036 t->t_oldpos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1037 t->t_nxtpos = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1038 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1039 for(i = 0; i < 16; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1040 t->t_flags[i] = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1041 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1042 t->t_praycnt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1043 t->t_trans = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1044 t->t_turn = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1045 t->t_wasshot = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1046 t->t_ctype = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1047 t->t_index = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1048 t->t_no_move = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1049 t->t_rest_hpt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1050 t->t_rest_pow = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1051 t->t_doorgoal = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1052 t->t_type = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1053 t->t_disguise = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1054 t->t_oldch = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1055 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1056 return(t); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1057 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1058 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1059 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1060 ur_write_window(FILE *savef, WINDOW *win) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1061 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1062 int i,j; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1063 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1064 ur_write_long(savef, URS_WINDOW); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1065 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1066 ur_write_int(savef, win->_maxy); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1067 ur_write_int(savef, win->_maxx); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1068 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1069 for(i=0; i < win->_maxy; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1070 for(j = 0; j < win->_maxx; j++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1071 ur_write_ulong(savef, mvwinch(win,i,j)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1072 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1073 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1074 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1075 ur_read_window(FILE *savef, WINDOW *win) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1076 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1077 int i,j; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1078 int maxy, maxx; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1079 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1080 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1081 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1082 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1083 assert(id == URS_WINDOW); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1084 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1085 maxy = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1086 maxx = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1087 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1088 for(i=0; i < maxy; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1089 for(j = 0; j < maxx; j++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1090 mvwaddch(win,i,j,ur_read_long(savef)); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1091 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1092 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1093 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1094 ur_write_daemons(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1095 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1096 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1097 int id=0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1098 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1099 ur_write_long(savef, URS_DAEMONS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1100 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1101 for(i = 0; i < MAXDAEMONS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1102 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1103 ur_write_int(savef, d_list[i].d_type ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1104 ur_write_int(savef, d_list[i].d_when ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1105 ur_write_int(savef, d_list[i].d_id); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1106 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1107 if (d_list[i].d_id == FUSE_UNSUMMON) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1108 id = find_thing_index(mlist, d_list[i].d_arg); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1109 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1110 if (d_list[i].d_id == DAEMON_DOCTOR) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1111 id = find_thing_index(mlist, d_list[i].d_arg); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1112 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1113 ur_write_int(savef, id); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1114 ur_write_int(savef, d_list[i].d_time ); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1115 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1116 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1117 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1118 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1119 ur_read_daemons(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1120 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1121 long id; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1122 int i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1123 demoncnt = 0; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1124 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1125 id = ur_read_long(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1126 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1127 assert(id == URS_DAEMONS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1128 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1129 for(i = 0; i < MAXDAEMONS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1130 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1131 d_list[i].d_type = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1132 d_list[i].d_when = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1133 d_list[i].d_id = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1134 id = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1135 d_list[i].d_time = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1136 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1137 if ((d_list[i].d_type != EMPTY) && (d_list[i].d_id == FUSE_UNSUMMON)) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1138 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1139 d_list[i].d_arg = find_thing(mlist,id); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1140 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1141 if (d_list[i].d_arg == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1142 d_list[i].d_type = EMPTY; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1143 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1144 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1145 if ((d_list[i].d_type != EMPTY) && (d_list[i].d_id == DAEMON_DOCTOR) ) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1146 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1147 if (id == 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1148 d_list[i].d_arg = &player; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1149 else |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1150 d_list[i].d_arg = find_thing(mlist, id); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1151 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1152 if (d_list[i].d_arg == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1153 d_list[i].d_type = EMPTY; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1154 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1155 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1156 if (d_list[i].d_type != EMPTY) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1157 demoncnt++; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1158 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1159 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1160 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1161 void |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1162 save_file(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1163 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1164 int i,weapon,armor,ring=0,room= -1,monster; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1165 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1166 ur_write_string(savef, save_format); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1167 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1168 ur_write_string(savef,"\nScroll Names\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1169 for(i = 0; i < MAXSCROLLS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1170 ur_write_string(savef,s_names[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1171 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1172 ur_write_string(savef,"\nPotion Colors\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1173 for(i = 0; i < MAXPOTIONS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1174 ur_write_string(savef,p_colors[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1175 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1176 ur_write_string(savef,"\nRing Stones\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1177 for(i = 0; i < MAXRINGS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1178 ur_write_string(savef,r_stones[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1179 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1180 ur_write_string(savef,"\nStick types\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1181 for(i = 0; i < MAXSTICKS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1182 ur_write_string(savef,ws_made[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1183 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1184 ur_write_string(savef,"\nStick types\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1185 for(i = 0; i < MAXSTICKS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1186 ur_write_string(savef,ws_type[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1187 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1188 ur_write_string(savef, "\nTraps on this level\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1189 ur_write_int(savef, MAXTRAPS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1190 for(i = 0; i < MAXTRAPS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1191 ur_write_trap(savef, &traps[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1192 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1193 ur_write_string(savef,"\nRooms on this level\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1194 ur_write_int(savef, MAXROOMS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1195 for(i = 0; i < MAXROOMS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1196 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1197 ur_write_room(savef, &rooms[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1198 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1199 if (&rooms[i] == oldrp) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1200 room = i; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1201 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1202 ur_write_int(savef,room); /* save for recovery of oldrp */ |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1203 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1204 ur_write_string(savef,"\nThe Rogue\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1205 ur_write_thing(savef, &player); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1206 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1207 ur_write_string(savef,"\nObjects on this level\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1208 ur_write_bag(savef, lvl_obj); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1209 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1210 ur_write_string(savef,"\nRogue's Familiar, if any \n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1211 ur_write_monsters(savef, fam_ptr); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1212 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1213 ur_write_string(savef,"\nMonsters on this level\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1214 ur_write_monsters(savef, mlist); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1215 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1216 monster = find_thing_index(mlist, beast); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1217 ur_write_int(savef, monster); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1218 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1219 ur_write_string(savef,"\nItems in use by rogue\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1220 weapon = find_list_index(player.t_pack, cur_weapon); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1221 armor = find_list_index(player.t_pack, cur_armor); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1222 ur_write_int(savef, weapon); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1223 ur_write_int(savef, armor); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1224 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1225 for(i=0; i < 10; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1226 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1227 if (cur_ring[i] == NULL) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1228 ring = find_list_index(player.t_pack, cur_ring[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1229 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1230 ur_write_int(savef, ring); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1231 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1232 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1233 ur_write_string(savef,"\nActive Daemons and Fuses\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1234 ur_write_daemons(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1235 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1236 ur_write_string(savef, "\nMisc\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1237 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1238 for(i = 0; i < 10; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1239 ur_write_string(savef, msgbuf[i]); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1240 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1241 ur_write_int(savef, msg_index); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1242 ur_write_int(savef, foodlev); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1243 ur_write_int(savef, ntraps); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1244 ur_write_int(savef, dnum); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1245 ur_write_int(savef, max_level); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1246 ur_write_int(savef, lost_dext); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1247 ur_write_int(savef, no_command); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1248 ur_write_int(savef, level); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1249 ur_write_int(savef, see_dist); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1250 ur_write_int(savef, no_food); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1251 ur_write_int(savef, count); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1252 ur_write_int(savef, food_left); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1253 ur_write_int(savef, group); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1254 ur_write_int(savef, hungry_state); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1255 ur_write_int(savef, infest_dam); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1256 ur_write_int(savef, lost_str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1257 ur_write_int(savef, hold_count); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1258 ur_write_int(savef, trap_tries); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1259 ur_write_int(savef, has_artifact); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1260 ur_write_int(savef, picked_artifact); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1261 ur_write_int(savef, luck); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1262 ur_write_int(savef, resurrect); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1263 ur_write_int(savef, fam_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1264 ur_write_int(savef, mons_summoned); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1265 ur_write_char(savef, PLAYER); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1266 ur_write_char(savef, take); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1267 ur_write_char(savef, runch); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1268 ur_write_int(savef, char_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1269 ur_write_int(savef, inv_type); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1270 ur_write_int(savef, pool_teleport); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1271 ur_write_int(savef, inwhgt); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1272 ur_write_int(savef, after); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1273 ur_write_int(savef, waswizard); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1274 ur_write_int(savef, canwizard); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1275 ur_write_int(savef, playing); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1276 ur_write_int(savef, running); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1277 ur_write_int(savef, fighting); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1278 ur_write_int(savef, wizard); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1279 ur_write_int(savef, wiz_verbose); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1280 ur_write_int(savef, moving); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1281 ur_write_coord(savef, delta); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1282 ur_write_int(savef, levtype); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1283 ur_write_int(savef, purse); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1284 ur_write_int(savef, total); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1285 ur_write_window(savef, cw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1286 ur_write_window(savef, hw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1287 ur_write_window(savef, mw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1288 ur_write_window(savef, stdscr); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1289 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1290 ur_write_string(savef,"\nGame Options\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1291 ur_write_int(savef, terse); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1292 ur_write_int(savef, door_stop); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1293 ur_write_int(savef, doorstop); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1294 ur_write_int(savef, jump); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1295 ur_write_int(savef, firstmove); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1296 ur_write_int(savef, askme); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1297 ur_write_string(savef,whoami); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1298 ur_write_string(savef,fruit); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1299 ur_write_string(savef,file_name); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1300 ur_write_string(savef,score_file); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1301 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1302 ur_write_string(savef,"\nEnd of UltraRogue Game State\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1303 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1304 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1305 #define DUMPSTRING { str = ur_read_string(savef); /*printf("%s",str);*/ ur_free(str); } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1306 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1307 int |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1308 restore_file(FILE *savef) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1309 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1310 int i,j; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1311 char *str; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1312 struct trap *t; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1313 struct room *r; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1314 struct thing *p; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1315 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1316 str = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1317 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1318 if (strcmp(str, save_format) != 0) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1319 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1320 printf("Save Game Version: %s\n", str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1321 printf("Real Game Version: %s\n", save_format); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1322 printf("Sorry, versions don't match.\n"); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1323 return(FALSE); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1324 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1325 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1326 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1327 for(i=0; i < MAXSCROLLS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1328 s_names[i] = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1329 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1330 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1331 for(i=0; i < MAXPOTIONS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1332 p_colors[i] = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1333 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1334 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1335 for(i=0; i < MAXRINGS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1336 r_stones[i] = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1337 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1338 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1339 for(i=0; i < MAXSTICKS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1340 ws_made[i] = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1341 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1342 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1343 for(i=0; i < MAXSTICKS; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1344 ws_type[i] = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1345 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1346 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1347 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1348 assert(i == MAXTRAPS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1349 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1350 for(i=0;i<MAXTRAPS;i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1351 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1352 t = ur_read_trap(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1353 traps[i] = *t; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1354 ur_free(t); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1355 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1356 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1357 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1358 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1359 assert(i == MAXROOMS); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1360 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1361 for(i=0;i<MAXROOMS;i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1362 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1363 r = ur_read_room(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1364 rooms[i] = *r; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1365 ur_free(r); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1366 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1367 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1368 oldrp = &rooms[i]; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1369 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1370 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1371 p = ur_read_thing(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1372 player = *p; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1373 ur_free(p); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1374 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1375 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1376 lvl_obj = ur_read_bag(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1377 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1378 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1379 fam_ptr = ur_read_monsters(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1380 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1381 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1382 mlist = ur_read_monsters(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1383 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1384 beast = find_thing(mlist, i); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1385 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1386 ur_fixup_monsters(fam_ptr); |
262
c7c6c5a7d840
UltraRogue: fix a segfault related to restoring monsters.
John "Elwin" Edwards
parents:
260
diff
changeset
|
1387 ur_fixup_monsters(mlist); |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1388 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1389 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1390 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1391 cur_weapon = find_object(player.t_pack, i); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1392 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1393 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1394 cur_armor = find_object(player.t_pack, i); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1395 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1396 for(j=0; j < 10; j++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1397 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1398 i = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1399 if (i == -1) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1400 cur_ring[j] = NULL; |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1401 else |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1402 cur_ring[j] = find_object(player.t_pack, i); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1403 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1404 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1405 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1406 ur_read_daemons(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1407 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1408 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1409 for(i = 0; i < 10; i++) |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1410 { |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1411 str = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1412 strcpy(&msgbuf[i][0],str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1413 ur_free(str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1414 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1415 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1416 msg_index = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1417 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1418 foodlev = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1419 ntraps = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1420 dnum = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1421 max_level = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1422 lost_dext = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1423 no_command = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1424 level = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1425 see_dist = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1426 no_food = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1427 count = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1428 food_left = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1429 group = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1430 hungry_state = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1431 infest_dam = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1432 lost_str = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1433 hold_count = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1434 trap_tries = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1435 has_artifact = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1436 picked_artifact = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1437 luck = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1438 resurrect = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1439 fam_type = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1440 mons_summoned = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1441 PLAYER = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1442 take = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1443 runch = ur_read_char(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1444 char_type = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1445 inv_type = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1446 pool_teleport = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1447 inwhgt = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1448 after = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1449 waswizard = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1450 canwizard = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1451 playing = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1452 running = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1453 fighting = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1454 wizard = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1455 wiz_verbose = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1456 moving = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1457 delta = ur_read_coord(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1458 levtype = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1459 purse = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1460 total = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1461 ur_read_window(savef, cw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1462 ur_read_window(savef, hw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1463 ur_read_window(savef, mw); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1464 ur_read_window(savef, stdscr); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1465 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1466 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1467 terse = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1468 door_stop = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1469 doorstop = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1470 jump = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1471 firstmove = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1472 askme = ur_read_int(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1473 str = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1474 strcpy(whoami,str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1475 ur_free(str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1476 str = ur_read_string(savef); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1477 strcpy(fruit,str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1478 ur_free(str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1479 str = ur_read_string(savef); |
260
b80e1bf4eaec
UltraRogue: don't overwrite the savefile name when restoring.
John "Elwin" Edwards
parents:
259
diff
changeset
|
1480 // The file_name stored in the file no longer replaces its actual name. |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1481 ur_free(str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1482 str = ur_read_string(savef); |
263
08057be02f47
UltraRogue: make scorefile location configurable.
John "Elwin" Edwards
parents:
262
diff
changeset
|
1483 if (!use_savedir) |
08057be02f47
UltraRogue: make scorefile location configurable.
John "Elwin" Edwards
parents:
262
diff
changeset
|
1484 strcpy(score_file,str); |
256
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1485 ur_free(str); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1486 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1487 DUMPSTRING |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1488 return(TRUE); |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1489 } |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1490 |
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
John "Elwin" Edwards
parents:
diff
changeset
|
1491 |