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

Comparing deliantra/server/server/time.C (file contents):
Revision 1.50 by root, Fri May 18 19:46:22 2007 UTC vs.
Revision 1.51 by root, Fri May 18 20:45:37 2007 UTC

1297 } 1297 }
1298 } 1298 }
1299 } 1299 }
1300} 1300}
1301 1301
1302int 1302void
1303process_object (object *op) 1303process_object (object *op)
1304{ 1304{
1305 if (QUERY_FLAG (op, FLAG_IS_A_TEMPLATE)) 1305 if (QUERY_FLAG (op, FLAG_IS_A_TEMPLATE))
1306 return 0; 1306 return;
1307 1307
1308 if (INVOKE_OBJECT (TICK, op)) 1308 if (INVOKE_OBJECT (TICK, op))
1309 return 0; 1309 return;
1310 1310
1311 if (QUERY_FLAG (op, FLAG_MONSTER)) 1311 if (QUERY_FLAG (op, FLAG_MONSTER))
1312 if (move_monster (op) || QUERY_FLAG (op, FLAG_FREED)) 1312 if (move_monster (op) || QUERY_FLAG (op, FLAG_FREED))
1313 return 1; 1313 return;
1314 1314
1315 if (QUERY_FLAG (op, FLAG_ANIMATE) && op->anim_speed == 0) 1315 if (QUERY_FLAG (op, FLAG_ANIMATE) && op->anim_speed == 0)
1316 { 1316 {
1317 animate_object (op, op->contr ? op->facing : op->direction); 1317 animate_object (op, op->contr ? op->facing : op->direction);
1318 1318
1319 if (QUERY_FLAG (op, FLAG_SEE_ANYWHERE)) 1319 if (QUERY_FLAG (op, FLAG_SEE_ANYWHERE))
1320 make_sure_seen (op); 1320 make_sure_seen (op);
1321 } 1321 }
1322 1322
1323 if (op->flag [FLAG_GENERATOR]
1324 || op->flag [FLAG_CHANGING]
1325 || op->flag [FLAG_IS_USED_UP])
1326 {
1323 if (QUERY_FLAG (op, FLAG_CHANGING) && !op->state) 1327 if (QUERY_FLAG (op, FLAG_CHANGING) && !op->state)
1324 { 1328 {
1325 change_object (op); 1329 change_object (op);
1326 return 1; 1330 return;
1327 } 1331 }
1328 1332
1329 if (QUERY_FLAG (op, FLAG_GENERATOR) && !QUERY_FLAG (op, FLAG_FRIENDLY)) 1333 if (QUERY_FLAG (op, FLAG_GENERATOR) && !QUERY_FLAG (op, FLAG_FRIENDLY))
1330 generate_monster (op); 1334 generate_monster (op);
1331 1335
1332 if (QUERY_FLAG (op, FLAG_IS_USED_UP) && --op->stats.food <= 0) 1336 if (QUERY_FLAG (op, FLAG_IS_USED_UP) && --op->stats.food <= 0)
1333 { 1337 {
1334 if (QUERY_FLAG (op, FLAG_APPLIED)) 1338 if (QUERY_FLAG (op, FLAG_APPLIED))
1335 remove_force (op); 1339 remove_force (op);
1336 else 1340 else
1337 { 1341 {
1338 /* If necessary, delete the item from the players inventory */ 1342 /* If necessary, delete the item from the players inventory */
1339 object *pl = op->in_player (); 1343 object *pl = op->in_player ();
1340 1344
1341 if (pl) 1345 if (pl)
1342 esrv_del_item (pl->contr, op->count); 1346 esrv_del_item (pl->contr, op->count);
1343 1347
1344 op->remove (); 1348 op->remove ();
1345 1349
1346 if (QUERY_FLAG (op, FLAG_SEE_ANYWHERE)) 1350 if (QUERY_FLAG (op, FLAG_SEE_ANYWHERE))
1347 make_sure_not_seen (op); 1351 make_sure_not_seen (op);
1348 1352
1349 op->destroy (); 1353 op->destroy ();
1350 } 1354 }
1351 1355
1352 return 1; 1356 return;
1357 }
1353 } 1358 }
1354 1359
1355 switch (op->type) 1360 switch (op->type)
1356 { 1361 {
1357 case SPELL_EFFECT: 1362 case SPELL_EFFECT:
1358 move_spell_effect (op); 1363 move_spell_effect (op);
1359 return 1; 1364 break;
1360 1365
1361 case ROD: 1366 case ROD:
1362 case HORN: 1367 case HORN:
1363 regenerate_rod (op); 1368 regenerate_rod (op);
1364 return 1; 1369 break;
1365 1370
1366 case FORCE: 1371 case FORCE:
1367 case POTION_EFFECT: 1372 case POTION_EFFECT:
1368 remove_force (op); 1373 remove_force (op);
1369 return 1; 1374 break;
1370 1375
1371 case BLINDNESS: 1376 case BLINDNESS:
1372 remove_blindness (op); 1377 remove_blindness (op);
1373 return 0; 1378 break;
1374 1379
1375 case POISONING: 1380 case POISONING:
1376 poison_more (op); 1381 poison_more (op);
1377 return 0; 1382 break;
1378 1383
1379 case DISEASE: 1384 case DISEASE:
1380 move_disease (op); 1385 move_disease (op);
1381 return 0; 1386 break;
1382 1387
1383 case SYMPTOM: 1388 case SYMPTOM:
1384 move_symptom (op); 1389 move_symptom (op);
1385 return 0; 1390 break;
1386 1391
1387 case THROWN_OBJ: 1392 case THROWN_OBJ:
1388 case ARROW: 1393 case ARROW:
1389 move_arrow (op); 1394 move_arrow (op);
1390 return 0; 1395 break;
1391 1396
1392 case DOOR: 1397 case DOOR:
1393 remove_door (op); 1398 remove_door (op);
1394 return 0; 1399 break;
1395 1400
1396 case LOCKED_DOOR: 1401 case LOCKED_DOOR:
1397 remove_door2 (op); 1402 remove_door2 (op);
1398 return 0; 1403 break;
1399 1404
1400 case TELEPORTER: 1405 case TELEPORTER:
1401 move_teleporter (op); 1406 move_teleporter (op);
1402 return 0; 1407 break;
1403 1408
1404 case GOLEM: 1409 case GOLEM:
1405 move_golem (op); 1410 move_golem (op);
1406 return 0; 1411 break;
1407 1412
1408 case EARTHWALL: 1413 case EARTHWALL:
1409 hit_player (op, 2, op, AT_PHYSICAL, 1); 1414 hit_player (op, 2, op, AT_PHYSICAL, 1);
1410 return 0; 1415 break;
1411 1416
1412 case FIREWALL: 1417 case FIREWALL:
1413 move_firewall (op); 1418 move_firewall (op);
1414 if (op->stats.maxsp) 1419 if (op->stats.maxsp)
1415 animate_turning (op); 1420 animate_turning (op);
1416 return 0; 1421 break;
1417 1422
1418 case MOOD_FLOOR: 1423 case MOOD_FLOOR:
1419 do_mood_floor (op); 1424 do_mood_floor (op);
1420 return 0; 1425 break;
1421 1426
1422 case GATE: 1427 case GATE:
1423 move_gate (op); 1428 move_gate (op);
1424 return 0; 1429 break;
1425 1430
1426 case TIMED_GATE: 1431 case TIMED_GATE:
1427 move_timed_gate (op); 1432 move_timed_gate (op);
1428 return 0; 1433 break;
1429 1434
1430 case TRIGGER: 1435 case TRIGGER:
1431 case TRIGGER_BUTTON: 1436 case TRIGGER_BUTTON:
1432 case TRIGGER_PEDESTAL: 1437 case TRIGGER_PEDESTAL:
1433 case TRIGGER_ALTAR: 1438 case TRIGGER_ALTAR:
1434 animate_trigger (op); 1439 animate_trigger (op);
1435 return 0; 1440 break;
1436 1441
1437 case DETECTOR: 1442 case DETECTOR:
1438 move_detector (op); 1443 move_detector (op);
1439 1444
1440 case DIRECTOR: 1445 case DIRECTOR:
1441 if (op->stats.maxsp) 1446 if (op->stats.maxsp)
1442 animate_turning (op); 1447 animate_turning (op);
1443 return 0; 1448 break;
1444 1449
1445 case HOLE: 1450 case HOLE:
1446 move_hole (op); 1451 move_hole (op);
1447 return 0; 1452 break;
1448 1453
1449 case DEEP_SWAMP: 1454 case DEEP_SWAMP:
1450 move_deep_swamp (op); 1455 move_deep_swamp (op);
1451 return 0; 1456 break;
1452 1457
1453 case RUNE: 1458 case RUNE:
1454 case TRAP: 1459 case TRAP:
1455 move_rune (op); 1460 move_rune (op);
1456 return 0; 1461 break;
1457 1462
1458 case PLAYERMOVER: 1463 case PLAYERMOVER:
1459 move_player_mover (op); 1464 move_player_mover (op);
1460 return 0; 1465 break;
1461 1466
1462 case CREATOR: 1467 case CREATOR:
1463 move_creator (op); 1468 move_creator (op);
1464 return 0; 1469 break;
1465 1470
1466 case MARKER: 1471 case MARKER:
1467 move_marker (op); 1472 move_marker (op);
1468 return 0; 1473 break;
1469 1474
1470 case PLAYER_CHANGER: 1475 case PLAYER_CHANGER:
1471 move_player_changer (op); 1476 move_player_changer (op);
1472 return 0; 1477 break;
1473 1478
1474 case PEACEMAKER: 1479 case PEACEMAKER:
1475 move_peacemaker (op); 1480 move_peacemaker (op);
1476 return 0; 1481 break;
1477 }
1478 1482
1479 return 0; 1483 case PLAYER:
1484 // players have their own speed-management, so undo the --speed_left
1485 ++op->speed_left;
1486 break;
1487 }
1480} 1488}
1481 1489

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines