mirror of
https://github.com/astromaddie/HaloCE-VR.git
synced 2026-10-29 04:00:18 +01:00
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.
94 lines
1.8 KiB
C
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
|