void slimeDie(Entity *my) { Entity *entity; int c = 0; for( c=0; c<5; c++ ) { Entity *gib = spawnGib(my); serverSpawnGibForClient(gib); } if (spawn_blood) { int x, y; x = std::min<unsigned int>(std::max<int>(0,my->x/16),map.width-1); y = std::min<unsigned int>(std::max<int>(0,my->y/16),map.height-1); if( map.tiles[y*MAPLAYERS+x*MAPLAYERS*map.height] ) { if( !checkObstacle(my->x,my->y,my,NULL) ) { if( my->sprite == 210 ) entity = newEntity(212,1,map.entities); else entity = newEntity(214,1,map.entities); entity->x = my->x; entity->y = my->y; entity->z = 7.4+(rand()%20)/100.f; entity->parent = my->uid; entity->sizex = 2; entity->sizey = 2; entity->yaw = (rand()%360)*PI/180.0; entity->flags[UPDATENEEDED] = TRUE; entity->flags[PASSABLE] = TRUE; } } } playSoundEntity(my, 69, 64); list_RemoveNode(my->mynode); return; }
void skeletonDie(Entity *my) { node_t *node, *nextnode; int i = 0; for( node=my->children.first; node!=NULL; node=nextnode ) { nextnode = node->next; if( node->element != NULL && i >= 2 ) { Entity *entity=(Entity *)node->element; if( entity->light != NULL ) list_RemoveNode(entity->light->node); entity->light = NULL; list_RemoveNode(entity->mynode); } list_RemoveNode(node); i++; } int c; for( c=0; c<6; c++ ) { Entity *entity = spawnGib(my); if( entity ) { switch( c ) { case 0: entity->sprite = 229; break; case 1: entity->sprite = 230; break; case 2: entity->sprite = 231; break; case 3: entity->sprite = 233; break; case 4: entity->sprite = 235; break; case 5: entity->sprite = 236; break; } serverSpawnGibForClient(entity); } } playSoundEntity(my, 94, 128); list_RemoveNode(my->mynode); return; }
void humanDie(Entity* my) { int c; for ( c = 0; c < 5; c++ ) { Entity* gib = spawnGib(my); serverSpawnGibForClient(gib); } my->spawnBlood(); playSoundEntity(my, 28, 128); my->removeMonsterDeathNodes(); list_RemoveNode(my->mynode); return; }
void gnomeDie(Entity *my) { node_t *node, *nextnode; int c; for( c=0; c<6; c++ ) { Entity *entity = spawnGib(my); if( entity ) serverSpawnGibForClient(entity); } if (spawn_blood) { int x, y; x = std::min<unsigned int>(std::max<int>(0,my->x/16),map.width-1); y = std::min<unsigned int>(std::max<int>(0,my->y/16),map.height-1); if( map.tiles[y*MAPLAYERS+x*MAPLAYERS*map.height] ) { if( !checkObstacle(my->x,my->y,my,NULL) ) { Entity *entity = newEntity(160,1,map.entities); entity->x = my->x; entity->y = my->y; entity->z = 7.4+(rand()%20)/100.f; entity->parent = my->uid; entity->sizex = 2; entity->sizey = 2; entity->yaw = (rand()%360)*PI/180.0; entity->flags[UPDATENEEDED] = TRUE; entity->flags[PASSABLE] = TRUE; } } } int i = 0; for( node=my->children.first; node!=NULL; node=nextnode ) { nextnode = node->next; if( node->element != NULL && i >= 2 ) { Entity *entity=(Entity *)node->element; if( entity->light != NULL ) list_RemoveNode(entity->light->node); entity->light = NULL; list_RemoveNode(entity->mynode); } list_RemoveNode(node); i++; } playSoundEntity(my,225+rand()%4,128); list_RemoveNode(my->mynode); return; }
void minotaurDie(Entity* my) { int c; for ( c = 0; c < 5; c++ ) { Entity* gib = spawnGib(my); serverSpawnGibForClient(gib); } my->spawnBlood(); for ( c = 0; c < MAXPLAYERS; c++ ) { playSoundPlayer(c, 114, 128); } my->removeMonsterDeathNodes(); list_RemoveNode(my->mynode); return; }