Files
astromaddie--HaloCE-VR/source/sound/sound_classes.h
T
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00

94 lines
1.8 KiB
C

/*
SOUND_CLASSES.H
file has inline function assertions.
*/
#ifndef __SOUND_CLASSES_H
#define __SOUND_CLASSES_H
#pragma once
#include "real_math.h"
#include "objects.h"
/* ---------- constants */
enum
{
MAXIMUM_SOUND_INSTANCES_PER_DEFINITION = 16,
MAXIMUM_SOUND_INSTANCES_PER_OBJECT_PER_DEFINITION = 16
};
enum sound_class
{
_sound_class_unit_dialog = 19,
_sound_class_music = 32,
_sound_class_scripted_dialog_to_player = 44,
_sound_class_scripted_other = 45,
_sound_class_scripted_dialog_to_other = 46,
_sound_class_scripted_dialog_force_unspatialized = 47,
};
/* ---------- macros */
/* ---------- structures */
struct sound_class_definition
{
short maximum_number_per_definition;
short maximum_number_per_object;
long preemption_time;
boolean speech;
byte pad_9;
short priority;
short cache_miss_mode;
short pad_E;
real wet_gain;
real pad_14;
real minimum_distance;
real maximum_distance;
real unknown_gain;
real unknown_scale;
boolean disabled;
byte pad_29[3];
};
/* ---------- prototypes/SOUND_CLASSES.C */
void sound_classes_initialize(
void);
void sound_classes_initialize_for_new_map(
void);
struct sound_class_definition *sound_class_get(
short class_index);
real sound_class_get_gain(
short class_index);
void debug_sound_classes_enable(
char const *name,
boolean enable);
void debug_sound_classes_set_distances(
char const *name,
real minimum_distance,
real maximum_distance);
void sound_class_set_gain(
char const *name,
real gain,
short interpolation_ticks);
void sound_classes_dispose_from_old_map(
void);
void sound_classes_dispose(
void);
void sound_classes_update(
long ticks);
void debug_sound_classes_set_wet(
char const *name,
real wet);
/* ---------- globals */
/* ---------- public code */
#endif // __SOUND_CLASSES_H