mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-17 15:00:27 +02:00
82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
/*
|
|
EQUIPMENT.C
|
|
|
|
symbols in this file:
|
|
000E5F40 0060:
|
|
_equipment_place (0000)
|
|
000E5FA0 0040:
|
|
_equipment_handle_pickup (0000)
|
|
000E5FE0 0030:
|
|
_equipment_definition_handle_pickup (0000)
|
|
*/
|
|
|
|
/* ---------- headers */
|
|
|
|
#include "cseries.h"
|
|
#include "equipment.h"
|
|
|
|
#include "equipment_definitions.h"
|
|
#include "items/items.h"
|
|
#include "objects/object_types.h"
|
|
#include "objects/objects.h"
|
|
#include "sound/game_sound.h"
|
|
|
|
/* ---------- constants */
|
|
|
|
/* ---------- macros */
|
|
|
|
/* ---------- structures */
|
|
|
|
/* ---------- prototypes */
|
|
|
|
/* ---------- globals */
|
|
|
|
/* ---------- public code */
|
|
|
|
void equipment_place(
|
|
long equipment_index,
|
|
struct scenario_equipment_datum *scenario_equipment)
|
|
{
|
|
struct item_datum *equipment = equipment_get(equipment_index);
|
|
|
|
SET_FLAG(
|
|
equipment->object.flags,
|
|
_object_at_rest_bit,
|
|
TEST_FLAG(scenario_equipment->object.misc_flags, _scenario_equipment_levitate_bit));
|
|
equipment->object.flags |= FLAG(_object_cannot_be_garbage_bit) | FLAG(_object_shadowless_bit);
|
|
SET_FLAG(
|
|
equipment->item.flags,
|
|
_equipment_orient_to_ground_bit,
|
|
!TEST_FLAG(scenario_equipment->object.misc_flags, _scenario_equipment_does_not_orient_to_ground_bit));
|
|
|
|
if (!TEST_FLAG(scenario_equipment->object.misc_flags, _scenario_equipment_levitate_bit))
|
|
equipment->object.position.z += 0.05f;
|
|
|
|
return;
|
|
}
|
|
|
|
void equipment_handle_pickup(
|
|
long equipment_index)
|
|
{
|
|
struct item_datum *equipment = equipment_get(equipment_index);
|
|
struct equipment_definition *equipment_definition = equipment_definition_get(equipment->definition_index);
|
|
|
|
if (equipment_definition->equipment.pickup_sound.index != NONE)
|
|
unspatialized_impulse_sound_new(equipment_definition->equipment.pickup_sound.index, 1.f);
|
|
|
|
return;
|
|
}
|
|
|
|
void equipment_definition_handle_pickup(
|
|
long equipment_definition_index)
|
|
{
|
|
struct equipment_definition *equipment_definition = equipment_definition_get(equipment_definition_index);
|
|
|
|
if (equipment_definition->equipment.pickup_sound.index != NONE)
|
|
unspatialized_impulse_sound_new(equipment_definition->equipment.pickup_sound.index, 1.f);
|
|
|
|
return;
|
|
}
|
|
|
|
/* ---------- private code */
|