Start object ambient sounds
| 1697 | |
| 1698 | // Start object ambient sounds |
| 1699 | void StartObjectSounds() { |
| 1700 | for (int i = 0; i < MAX_OBJECTS; i++) { |
| 1701 | object *objp = &Objects[i]; |
| 1702 | |
| 1703 | // If generic object, check for ambient sound |
| 1704 | switch (objp->type) { |
| 1705 | |
| 1706 | case OBJ_CLUTTER: |
| 1707 | case OBJ_BUILDING: |
| 1708 | case OBJ_ROBOT: |
| 1709 | case OBJ_POWERUP: { |
| 1710 | int ambient_sound = Object_info[objp->id].sounds[GSI_AMBIENT]; |
| 1711 | if (ambient_sound != SOUND_NONE_INDEX) |
| 1712 | Sound_system.Play3dSound(ambient_sound, SND_PRIORITY_LOWEST, objp); |
| 1713 | break; |
| 1714 | } |
| 1715 | |
| 1716 | case OBJ_SOUNDSOURCE: |
| 1717 | ASSERT(objp->control_type == CT_SOUNDSOURCE); |
| 1718 | if (objp->name) // if has name, attach sound to object |
| 1719 | Sound_system.Play3dSound(objp->ctype.soundsource_info.sound_index, SND_PRIORITY_NORMAL, objp, |
| 1720 | objp->ctype.soundsource_info.volume); |
| 1721 | else { // no name, so attach to 3D position & delete object |
| 1722 | pos_state ps; |
| 1723 | ps.position = &objp->pos; |
| 1724 | ps.roomnum = objp->roomnum; |
| 1725 | ps.orient = (matrix *)&Identity_matrix; |
| 1726 | Sound_system.Play3dSound(objp->ctype.soundsource_info.sound_index, SND_PRIORITY_NORMAL, &ps, |
| 1727 | objp->ctype.soundsource_info.volume); |
| 1728 | ObjDelete(i); |
| 1729 | } |
| 1730 | break; |
| 1731 | } |
| 1732 | } |
| 1733 | } |
| 1734 | |
| 1735 | // Go through the level and start and sounds associated with textures |
| 1736 | void StartTextureSounds() { |
no test coverage detected