ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/spell_attack.C
(Generate patch)

Comparing deliantra/server/server/spell_attack.C (file contents):
Revision 1.42 by root, Sun Jul 1 05:00:20 2007 UTC vs.
Revision 1.46 by root, Wed Aug 1 00:52:38 2007 UTC

343 * BULLET/BALL CODE 343 * BULLET/BALL CODE
344 * 344 *
345 ***************************************************************************/ 345 ***************************************************************************/
346 346
347/* expands an explosion. op is a piece of the 347/* expands an explosion. op is a piece of the
348 * explosion - this expans it in the different directions. 348 * explosion - this expands it in the different directions.
349 * At least that is what I think this does. 349 * At least that is what I think this does.
350 */ 350 */
351void 351void
352explosion (object *op) 352explosion (object *op)
353{ 353{
483 483
484 /* Prevent recursion */ 484 /* Prevent recursion */
485 op->move_on = 0; 485 op->move_on = 0;
486 486
487 tmp->insert_at (op, op); 487 tmp->insert_at (op, op);
488 tmp->play_sound (tmp->sound);
489
488 /* remove the firebullet */ 490 /* remove the firebullet */
489 op->destroy (); 491 op->destroy ();
490} 492}
491 493
492/* checks to see what op should do, given the space it is on 494/* checks to see what op should do, given the space it is on
1085 * op = player 1087 * op = player
1086 * caster = object casting the spell. 1088 * caster = object casting the spell.
1087 * dir = direction being cast 1089 * dir = direction being cast
1088 * spell = spell object 1090 * spell = spell object
1089 */ 1091 */
1090
1091int 1092int
1092cast_smite_spell (object *op, object *caster, int dir, object *spell) 1093cast_smite_spell (object *op, object *caster, int dir, object *spell)
1093{ 1094{
1094 object *effect, *target; 1095 object *effect, *target;
1095 object *god = find_god (determine_god (op)); 1096 object *god = find_god (determine_god (op));
1173 effect->insert_at (target, op); 1174 effect->insert_at (target, op);
1174 1175
1175 return 1; 1176 return 1;
1176} 1177}
1177 1178
1178
1179/**************************************************************************** 1179/****************************************************************************
1180 * 1180 *
1181 * MAGIC MISSILE code. 1181 * MAGIC MISSILE code.
1182 * note that the fire_bullet is used to fire the missile. The 1182 * note that the fire_bullet is used to fire the missile. The
1183 * code here is just to move the missile. 1183 * code here is just to move the missile.
1253 * we do this by creating a force and inserting it in the 1253 * we do this by creating a force and inserting it in the
1254 * object. if time is 0, the object glows permanently. To truely 1254 * object. if time is 0, the object glows permanently. To truely
1255 * make this work for non-living objects, we would have to 1255 * make this work for non-living objects, we would have to
1256 * give them the capability to have an inventory. b.t. 1256 * give them the capability to have an inventory. b.t.
1257 */ 1257 */
1258
1259int 1258int
1260make_object_glow (object *op, int radius, int time) 1259make_object_glow (object *op, int radius, int time)
1261{ 1260{
1262 object *tmp;
1263
1264 /* some things are unaffected... */ 1261 /* some things are unaffected... */
1265 if (op->path_denied & PATH_LIGHT) 1262 if (op->path_denied & PATH_LIGHT)
1266 return 0; 1263 return 0;
1267 1264
1268 tmp = get_archetype (FORCE_NAME); 1265 object *tmp = get_archetype (FORCE_NAME);
1269 tmp->speed = 0.01; 1266 tmp->speed = 0.01;
1270 tmp->stats.food = time; 1267 tmp->stats.food = time;
1271 SET_FLAG (tmp, FLAG_IS_USED_UP); 1268 SET_FLAG (tmp, FLAG_IS_USED_UP);
1272 tmp->glow_radius = radius; 1269 tmp->glow_radius = radius;
1273 if (tmp->glow_radius > MAX_LIGHT_RADII) 1270 if (tmp->glow_radius > MAX_LIGHT_RADII)
1274 tmp->glow_radius = MAX_LIGHT_RADII; 1271 tmp->glow_radius = MAX_LIGHT_RADII;
1275 1272
1276 tmp->x = op->x;
1277 tmp->y = op->y;
1278 if (tmp->speed < MIN_ACTIVE_SPEED)
1279 tmp->speed = MIN_ACTIVE_SPEED; /* safety */
1280 tmp = insert_ob_in_ob (tmp, op); 1273 tmp = insert_ob_in_ob (tmp, op);
1274
1281 if (tmp->glow_radius > op->glow_radius) 1275 if (tmp->glow_radius > op->glow_radius)
1282 op->glow_radius = tmp->glow_radius; 1276 op->glow_radius = tmp->glow_radius;
1283 1277
1284 if (!tmp->env || op != tmp->env)
1285 {
1286 LOG (llevError, "make_object_glow() failed to insert glowing force in %s\n", &op->name);
1287 return 0;
1288 }
1289 return 1; 1278 return 1;
1290} 1279}
1291 1280
1292int 1281int
1293cast_destruction (object *op, object *caster, object *spell_ob) 1282cast_destruction (object *op, object *caster, object *spell_ob)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines