1 | /* |
1 | /* |
2 | * CrossFire, A Multiplayer game for X-windows |
2 | * CrossFire, A Multiplayer game |
3 | * |
3 | * |
4 | * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team |
4 | * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team |
5 | * Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
5 | * Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
6 | * Copyright (C) 1992 Frank Tore Johansen |
6 | * Copyright (C) 1992 Frank Tore Johansen |
7 | * |
7 | * |
… | |
… | |
53 | && op->arch->clone.race |
53 | && op->arch->clone.race |
54 | && !strcmp (op->arch->clone.race, "dragon")) |
54 | && !strcmp (op->arch->clone.race, "dragon")) |
55 | return 1; |
55 | return 1; |
56 | |
56 | |
57 | return 0; |
57 | return 0; |
58 | } |
|
|
59 | |
|
|
60 | void |
|
|
61 | player::set_skill (object *skill, object *ob) |
|
|
62 | { |
|
|
63 | if (skill->type == SKILL && IS_COMBAT_SKILL (skill->subtype)) |
|
|
64 | { |
|
|
65 | combat_skill = skill; |
|
|
66 | combat_ob = ob; |
|
|
67 | } |
|
|
68 | else |
|
|
69 | { |
|
|
70 | ranged_skill = skill; |
|
|
71 | ranged_ob = ob; |
|
|
72 | } |
|
|
73 | } |
58 | } |
74 | |
59 | |
75 | /* |
60 | /* |
76 | * If final is set, it a clean/final save, not a backup, ie dont remove objects from inventory |
61 | * If final is set, it a clean/final save, not a backup, ie dont remove objects from inventory |
77 | */ |
62 | */ |
… | |
… | |
112 | PL_OUT2 (map, maplevel); |
97 | PL_OUT2 (map, maplevel); |
113 | PL_OUT (savebed_map); |
98 | PL_OUT (savebed_map); |
114 | PL_OUT (bed_x); |
99 | PL_OUT (bed_x); |
115 | PL_OUT (bed_y); |
100 | PL_OUT (bed_y); |
116 | PL_OUT (weapon_sp); |
101 | PL_OUT (weapon_sp); |
|
|
102 | PL_OUT (weapon_sp_left); |
117 | PL_OUT2 (Str, orig_stats.Str); |
103 | PL_OUT2 (Str, orig_stats.Str); |
118 | PL_OUT2 (Dex, orig_stats.Dex); |
104 | PL_OUT2 (Dex, orig_stats.Dex); |
119 | PL_OUT2 (Con, orig_stats.Con); |
105 | PL_OUT2 (Con, orig_stats.Con); |
120 | PL_OUT2 (Int, orig_stats.Int); |
106 | PL_OUT2 (Int, orig_stats.Int); |
121 | PL_OUT2 (Pow, orig_stats.Pow); |
107 | PL_OUT2 (Pow, orig_stats.Pow); |
… | |
… | |
124 | |
110 | |
125 | PL_OUT2 (lev_array, 10); |
111 | PL_OUT2 (lev_array, 10); |
126 | |
112 | |
127 | for (int i = 1; i <= 10; i++) |
113 | for (int i = 1; i <= 10; i++) |
128 | { |
114 | { |
129 | fprintf (freezer, "%d\n", levhp [i]); |
115 | freezer.add (levhp [i]); freezer.add ('\n'); |
130 | fprintf (freezer, "%d\n", levsp [i]); |
116 | freezer.add (levsp [i]); freezer.add ('\n'); |
131 | fprintf (freezer, "%d\n", levgrace[i]); |
117 | freezer.add (levgrace[i]); freezer.add ('\n'); |
132 | } |
118 | } |
133 | |
119 | |
134 | freezer.put (ob->contr); |
120 | freezer.put (ob->contr); |
135 | freezer.put (KW_endplst); |
121 | freezer.put (KW_endplst); |
136 | |
122 | |
… | |
… | |
215 | case KW_map: f.get (pl->maplevel); break; |
201 | case KW_map: f.get (pl->maplevel); break; |
216 | case KW_savebed_map: f.get (pl->savebed_map); break; |
202 | case KW_savebed_map: f.get (pl->savebed_map); break; |
217 | case KW_bed_x: f.get (pl->bed_x); break; |
203 | case KW_bed_x: f.get (pl->bed_x); break; |
218 | case KW_bed_y: f.get (pl->bed_y); break; |
204 | case KW_bed_y: f.get (pl->bed_y); break; |
219 | case KW_weapon_sp: f.get (pl->weapon_sp); break; |
205 | case KW_weapon_sp: f.get (pl->weapon_sp); break; |
|
|
206 | case KW_weapon_sp_left:f.get (pl->weapon_sp_left); break; |
220 | case KW_Str: f.get (pl->orig_stats.Str); break; |
207 | case KW_Str: f.get (pl->orig_stats.Str); break; |
221 | case KW_Dex: f.get (pl->orig_stats.Dex); break; |
208 | case KW_Dex: f.get (pl->orig_stats.Dex); break; |
222 | case KW_Con: f.get (pl->orig_stats.Con); break; |
209 | case KW_Con: f.get (pl->orig_stats.Con); break; |
223 | case KW_Int: f.get (pl->orig_stats.Int); break; |
210 | case KW_Int: f.get (pl->orig_stats.Int); break; |
224 | case KW_Pow: f.get (pl->orig_stats.Pow); break; |
211 | case KW_Pow: f.get (pl->orig_stats.Pow); break; |