Example #1
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	fixed_wing
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_OPERATIONAL_STATE:
		////////////////////////////////////////
		{
			int
				state1,
				state2;

			state1 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING);

			raw->ac.operational_state = value;

			state2 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING);

			if ((state1 == FALSE) && (state2 == TRUE))
			{
				//
				// wasn't moving, but is now
				//

				resume_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1);
			}
			else if ((state1 == TRUE) && (state2 == FALSE))
			{
				//
				// was moving, but isn't anymore
				//

				pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1, 0.5);

				pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING2, 0.5);
			}

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #2
0
static void set_local_raw_int_value (entity *en, int_types type, int value)
{
	waypoint
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			raw->sub_type = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_POSITION_TYPE:
		////////////////////////////////////////
		{

			raw->position_type = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ROUTE_NODE:
		////////////////////////////////////////
		{
			raw->route_node = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WAYPOINT_FORMATION:
		////////////////////////////////////////
		{
			ASSERT (value <= get_formation_database_count ());

			raw->waypoint_formation = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #3
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	site
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (site *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_DAMAGE_LEVEL:
		////////////////////////////////////////
		{
			raw->damage_level = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #4
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	city
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (city *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_APPROXIMATION_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			raw->approximation_object_3d_shape = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #5
0
static int get_local_int_value (entity *en, int_types type)
{
	city
		*raw;

	int
		value;

	raw = (city *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_APPROXIMATION_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			value = raw->approximation_object_3d_shape;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #6
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	weapon
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (weapon *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_WEAPON_BURST_SIZE:
		////////////////////////////////////////
		{
			raw->burst_size = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_KILL_CODE:
		////////////////////////////////////////
		{
			raw->kill_code = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LOCK_ON_AFTER_LAUNCH:
		////////////////////////////////////////
		{
			raw->loal_mode = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_MISSILE_PHASE:
		////////////////////////////////////////
		{
			raw->missile_phase = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #7
0
static void set_local_int_value (entity *en, int_types type, int value)
{
    bridge
    *raw;

#if DEBUG_MODULE

    debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

#endif

    raw = get_local_entity_data (en);

    switch (type)
    {
    ////////////////////////////////////////
    case INT_TYPE_ALIVE:
        ////////////////////////////////////////
    {
        raw->alive = value;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_ENTITY_SUB_TYPE:
        ////////////////////////////////////////
    {
        raw->sub_type = value;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_START_NODE:
        ////////////////////////////////////////
    {
        raw->start_node = value;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_END_NODE:
        ////////////////////////////////////////
    {
        raw->end_node = value;

        break;
    }
    ////////////////////////////////////////
    default:
        ////////////////////////////////////////
    {
        debug_fatal_invalid_int_type (en, type);

        break;
    }
    }
}
Example #8
0
static int get_local_int_value (entity *en, int_types type)
{
    bridge
    *raw;

    int
    value;

    raw = get_local_entity_data (en);

    switch (type)
    {
    ////////////////////////////////////////
    case INT_TYPE_ALIVE:
        ////////////////////////////////////////
    {
        value = raw->alive;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_ENTITY_SUB_TYPE:
        ////////////////////////////////////////
    {
        value = raw->sub_type;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_START_NODE:
        ////////////////////////////////////////
    {
        value = raw->start_node;

        break;
    }
    ////////////////////////////////////////
    case INT_TYPE_END_NODE:
        ////////////////////////////////////////
    {
        value = raw->end_node;

        break;
    }
    ////////////////////////////////////////
    default:
        ////////////////////////////////////////
    {
        debug_fatal_invalid_int_type (en, type);

        break;
    }
    }

    return (value);
}
Example #9
0
static void set_local_raw_int_value (entity *en, int_types type, int value)
{
	vehicle
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (vehicle *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_OPERATIONAL_STATE:
		////////////////////////////////////////
		{

			raw->operational_state = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SELECTED_WEAPON:
		////////////////////////////////////////
		{
			raw->selected_weapon = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			raw->weapon_config_type = (weapon_config_types) value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #10
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	particle
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			raw->object_3d_shape = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_PARTICLE_COUNT:
		////////////////////////////////////////
		{
			raw->particle_count = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #11
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	smoke_list
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_INFINITE_GENERATOR:
		////////////////////////////////////////
		{
			raw->infinite_generator = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SMOKE_TYPE:
		////////////////////////////////////////
		{
			raw->smoke_type = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #12
0
static int get_local_int_value (entity *en, int_types type)
{
	smoke_list
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_INFINITE_GENERATOR:
		////////////////////////////////////////
		{
			value = raw->infinite_generator;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SMOKE_TYPE:
		////////////////////////////////////////
		{
			value = raw->smoke_type;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #13
0
static int get_local_int_value (entity *en, int_types type)
{
	particle
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			value = raw->object_3d_shape;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_PARTICLE_COUNT:
		////////////////////////////////////////
		{
			value = raw->particle_count;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #14
0
static int get_local_int_value (entity *en, int_types type)
{
	site
		*raw;

	int
		value;

	raw = (site *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_DAMAGE_LEVEL:
		////////////////////////////////////////
		{
			value = raw->damage_level;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TASK_TARGET_TYPE:
		////////////////////////////////////////
		{
			value = (TASK_TARGET_TYPE_ANY | TASK_TARGET_TYPE_BUILDING);

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #15
0
static int get_local_int_value (entity *en, int_types type)
{
	person
		*raw;

	int
		value;

	raw = (person *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_MOVEMENT_TYPE:
		////////////////////////////////////////
		{
			value = MOVEMENT_TYPE_GROUND;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TASK_TARGET_TYPE:
		////////////////////////////////////////
		{
			value = (TASK_TARGET_TYPE_ANY | TASK_TARGET_TYPE_MOBILE | TASK_TARGET_TYPE_VEHICLE | TASK_TARGET_TYPE_PEOPLE);

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #16
0
static int get_local_int_value (entity *en, int_types type)
{
	weapon
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_DEFAULT_3D_SHAPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].default_3d_shape;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_HARD_DAMAGE_CAPABILITY:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].hard_damage_capability;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_IDENTIFY_WEAPON:
		////////////////////////////////////////
		{
			value = TRUE;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOFT_DAMAGE_CAPABILITY:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].soft_damage_capability;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_THREAT_TYPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].threat_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VIEWABLE_WEAPON:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].viewable_weapon;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_BURST_SIZE:
		////////////////////////////////////////
		{
			value = raw->burst_size;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_DECOY_TYPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].decoy_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_GUIDANCE_TYPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].guidance_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_KILL_CODE:
		////////////////////////////////////////
		{
			value = raw->kill_code;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_SMOKE_TRAIL_TYPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].smoke_trail_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_WARHEAD_TYPE:
		////////////////////////////////////////
		{
			value = weapon_database[raw->mob.sub_type].warhead_type;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #17
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	landing
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (landing *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			raw->sub_type = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FREE_LANDING_SITES:
		////////////////////////////////////////
		{
			
			raw->free_landing_sites = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_INSIDE_HANGAR:
		////////////////////////////////////////
		{
			raw->inside_hangar = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDED_LOCK:
		////////////////////////////////////////
		{
			raw->landed_lock = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDING_LOCK:
		////////////////////////////////////////
		{
			raw->landing_lock = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_RESERVED_LANDING_SITES:
		////////////////////////////////////////
		{
			raw->reserved_landing_sites = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ROUTE_NODE:
		////////////////////////////////////////
		{
			raw->route_node = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TOTAL_LANDING_SITES:
		////////////////////////////////////////
		{
			raw->total_landing_sites = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TAKEOFF_LOCK:
		////////////////////////////////////////
		{
			raw->takeoff_lock = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #18
0
static int get_local_int_value (entity *en, int_types type)
{
	landing
		*raw;

	int
		value;

	raw = (landing *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			value = raw->sub_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FREE_LANDING_SITES:
		////////////////////////////////////////
		{
			value = raw->free_landing_sites;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_INSIDE_HANGAR:
		////////////////////////////////////////
		{
			value = raw->inside_hangar;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDED_LOCK:
		////////////////////////////////////////
		{
			value = raw->landed_lock;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDING_LOCK:
		////////////////////////////////////////
		{
			value = raw->landing_lock;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_RESERVED_LANDING_SITES:
		////////////////////////////////////////
		{
			value = raw->reserved_landing_sites;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ROUTE_NODE:
		////////////////////////////////////////
		{
			debug_fatal ("ld_int: can't use route node");

			value = raw->route_node;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TOTAL_LANDING_SITES:
		////////////////////////////////////////
		{
			value = raw->total_landing_sites;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TAKEOFF_LOCK:
		////////////////////////////////////////
		{
			value = raw->takeoff_lock;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #19
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	sector
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_COUNT:
		////////////////////////////////////////
		{
			raw->keysite_count = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			raw->side = value;

			#ifdef DEBUG

			if (value != ENTITY_SIDE_NEUTRAL)
			{
				ASSERT (get_game_status () == GAME_STATUS_INITIALISING);
			}

			#endif
			
			break;
		}
		////////////////////////////////////////
		case INT_TYPE_X_SECTOR:
		////////////////////////////////////////
		{
			raw->x_sector = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_Z_SECTOR:
		////////////////////////////////////////
		{
			raw->z_sector = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #20
0
static int get_local_int_value (entity *en, int_types type)
{
	fixed_wing
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_IDENTIFY_FIXED_WING:
		////////////////////////////////////////
		{
			value = 1;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_RADAR_ON:
		////////////////////////////////////////
		{
			//
			// fixed wing aircraft must have an airborne radar and a target for the radar to be on
			//

			value = FALSE;

			if (aircraft_database[raw->ac.mob.sub_type].threat_type == THREAT_TYPE_AIRBORNE_RADAR)
			{
				if (raw->ac.mob.target_link.parent != NULL)
				{
					value = TRUE;
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TASK_TARGET_TYPE:
		////////////////////////////////////////
		{
			if (get_local_entity_int_value (en, INT_TYPE_LANDED))
			{
				value = (TASK_TARGET_TYPE_ANY | TASK_TARGET_TYPE_MOBILE | TASK_TARGET_TYPE_GROUNDED_AIRCRAFT | TASK_TARGET_TYPE_FIXED_WING);
			}
			else
			{
				value = (TASK_TARGET_TYPE_ANY | TASK_TARGET_TYPE_MOBILE | TASK_TARGET_TYPE_AIRBORNE_AIRCRAFT | TASK_TARGET_TYPE_FIXED_WING);
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WARHEAD_EFFECTIVE_CLASS:
		////////////////////////////////////////
		{
			value = WARHEAD_EFFECTIVE_FIXED_WING;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #21
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	vehicle
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (vehicle *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_CPG_IDENTIFIED:
		////////////////////////////////////////
		{
			raw->cpg_identified = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DAMAGE_LEVEL:
		////////////////////////////////////////
		{
			raw->damage_level = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FORMATION_POSITION:
		////////////////////////////////////////
		{
			raw->formation_position = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GROUP_MEMBER_NUMBER:
		////////////////////////////////////////
		{
			ASSERT (value >= 0);

			ASSERT (value < (1 << NUM_GROUP_MEMBER_NUMBER_BITS));

			raw->group_member_number = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GUNSHIP_RADAR_LOS_CLEAR:
		////////////////////////////////////////
		{
			raw->gunship_radar_los_clear = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ID_NUMBER:
		////////////////////////////////////////
		{
			raw->id_number = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ID_NUMBER_SIGNIFICANT_DIGITS:
		////////////////////////////////////////
		{
			raw->id_number_significant_digits = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LIGHTS_ON:
		////////////////////////////////////////
		{
			raw->lights_on = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LOS_TO_TARGET:
		////////////////////////////////////////
		{
			raw->los_to_target = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			raw->object_3d_shape = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OPERATIONAL_STATE:
		////////////////////////////////////////
		{

			int
				state1,
				state2;

			day_segment_types
				day_segment_type;

			state1 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING);

			raw->operational_state = value;

			state2 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING);

			if ((state1 == FALSE) && (state2 == TRUE))
			{
				//
				// wasn't moving, but is now
				//

				// vehicle wakes
				set_infinite_smoke_list_generating_state (en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_ON);

				// lights
				day_segment_type = (day_segment_types) get_local_entity_int_value (get_session_entity (), INT_TYPE_DAY_SEGMENT_TYPE);

				if ((day_segment_type == DAY_SEGMENT_TYPE_NIGHT) || (day_segment_type == DAY_SEGMENT_TYPE_DUSK))
				{
					set_vehicle_headlight_state (en, ON);
				}

				// weapons
				if (get_comms_model () == COMMS_MODEL_SERVER)
				{
					set_client_server_entity_int_value (en, INT_TYPE_SELECTED_WEAPON, ENTITY_SUB_TYPE_WEAPON_NO_WEAPON);
				}

				// sound effects
				pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1, 0.5);

				resume_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING2);
			}
			else if ((state1 == TRUE) && (state2 == FALSE))
			{
				//
				// was moving, but isn't anymore
				//

				set_infinite_smoke_list_generating_state (en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_OFF);

				set_vehicle_headlight_state (en, OFF);

				pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING2, 0.5);

				resume_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1);
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SELECTED_WEAPON:
		////////////////////////////////////////
		{
			//
			// stop continuous sound effect
			//

			if (raw->selected_weapon != value)
			{
				pause_local_continuous_weapon_sound_effect (en, raw->selected_weapon);
			}

			raw->selected_weapon = value;

			raw->weapon_burst_timer = 0.0;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SELECTED_WEAPON_SYSTEM_READY:
		////////////////////////////////////////
		{
			raw->selected_weapon_system_ready = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_AND_TARGET_VECTORS_VALID:
		////////////////////////////////////////
		{
			raw->weapon_and_target_vectors_valid = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			raw->weapon_config_type = (weapon_config_types) value;

			load_local_entity_weapon_config (en);

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #22
0
static int get_local_int_value (entity *en, int_types type)
{
	sector
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_COUNT:
		////////////////////////////////////////
		{
			value = raw->keysite_count;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			value = raw->side;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SECTOR_SIDE:
		////////////////////////////////////////
		{
			if (raw->sector_side [ENTITY_SIDE_BLUE_FORCE] > raw->sector_side [ENTITY_SIDE_RED_FORCE])
			{
				value = ENTITY_SIDE_BLUE_FORCE;
			}
			else
			{
				value = ENTITY_SIDE_RED_FORCE;
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_X_SECTOR:
		////////////////////////////////////////
		{
			value = raw->x_sector;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_Z_SECTOR:
		////////////////////////////////////////
		{
			value = raw->z_sector;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #23
0
static int get_local_int_value (entity *en, int_types type)
{
	keysite
		*raw;

	int
		value;

	raw = (keysite *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_ALIGN_WITH_TERRAIN:
		////////////////////////////////////////
		{
			value = keysite_database [raw->sub_type].align_with_terrain;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ALIVE:
		////////////////////////////////////////
		{
			value = raw->alive;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			value = raw->sub_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_HIDDEN_BY_FOG_OF_WAR:
		////////////////////////////////////////
		{
			value = keysite_database [raw->sub_type].hidden_by_fog_of_war;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_IN_USE:
		////////////////////////////////////////
		{
			value = raw->in_use;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_ID:
		////////////////////////////////////////
		{
			value = raw->keysite_id;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_USABLE_STATE:
		////////////////////////////////////////
		{
			value = raw->keysite_usable_state;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDING_TYPES:
		////////////////////////////////////////
		{
			value = raw->landing_types;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MAP_ICON:
		////////////////////////////////////////
		{
			value = keysite_database [raw->sub_type].map_icon;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OBJECT_INDEX:
		////////////////////////////////////////
		{
			value = raw->object_index;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_POTENTIAL_CAMPAIGN_OBJECTIVE:
		////////////////////////////////////////
		{
			value = keysite_database [raw->sub_type].campaign_objective;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			value = raw->side;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #24
0
static int get_local_int_value (entity *en, int_types type)
{
	waypoint
		*raw;

	int
		value;

	raw = get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_CHECK_WAYPOINT_ACTION:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].check_waypoint_action;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			value = raw->sub_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_IDENTIFY_WAYPOINT:
		////////////////////////////////////////
		{
			value = TRUE;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MAP_ICON:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].map_icon;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MOBILE_FOLLOW_WAYPOINT_OFFSET:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].mobile_follow_waypoint_offset;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_PLANNER_MOVEABLE:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].planner_moveable;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_POSITION_TYPE:
		////////////////////////////////////////
		{
			value = raw->position_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ROUTE_NODE:
		////////////////////////////////////////
		{
			value = raw->route_node;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VERBOSE_OPERATIONAL_STATE:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].verbose_operational_state;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WAYPOINT_FORMATION:
		////////////////////////////////////////
		{
			value = raw->waypoint_formation;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WAYPOINT_GUIDE_TYPE:
		////////////////////////////////////////
		{
			value = waypoint_database [raw->sub_type].guide_sub_type;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #25
0
static int get_local_int_value (entity *en, int_types type)
{
	sound_effect
		*raw;

	int
		value;

	raw = (sound_effect *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_MAXIMUM_VOLUME:
		////////////////////////////////////////
		{
			// possibly store in entity ??

			ASSERT (raw->effect_index);

			value = application_sound_effects [raw->effect_index [0]].maximum_volume;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			value = raw->side;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_CHANNEL:
		////////////////////////////////////////
		{
			value = raw->sound_channel;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_LOOPING:
		////////////////////////////////////////
		{
			value = raw->looping;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_PANNING:
		////////////////////////////////////////
		{
			value = raw->panning;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_RATE:
		////////////////////////////////////////
		{
			ASSERT (raw->effect_index);

			value = application_sound_effects [raw->effect_index [0]].rate;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_SEQUENCE_COUNT:
		////////////////////////////////////////
		{
			value = raw->sound_effect_sequence_count;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_LOCALITY:
		////////////////////////////////////////
		{
			value = raw->sound_locality;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VALID_SOUND_EFFECT:
		////////////////////////////////////////
		{
			value = raw->valid_sound_effect;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #26
0
static int get_local_int_value (entity *en, int_types type)
{
	vehicle
		*raw;

	int
		value;

	raw = (vehicle *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_COLLISION_TEST_MOBILE:
		////////////////////////////////////////
		{
			value = TRUE;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_CPG_IDENTIFIED:
		////////////////////////////////////////
		{
			value = raw->cpg_identified;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DAMAGE_LEVEL:
		////////////////////////////////////////
		{
			value = raw->damage_level;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DEFAULT_3D_SHAPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].default_3d_shape;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DEFAULT_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].default_weapon_config_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DEFAULT_WEAPON_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].default_weapon_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_DESTROYED_3D_SHAPE:
		////////////////////////////////////////
		{
			value = get_3d_object_destroyed_object_index (raw->object_3d_shape);

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ENGAGE_ENEMY:
		////////////////////////////////////////
		{
			entity
				*group;
				
			value = FALSE;

			switch (raw->operational_state)
			{
				case OPERATIONAL_STATE_LANDED:
				{
					if (get_local_entity_parent (en, LIST_TYPE_TAKEOFF_QUEUE))
					{
						//
						// Don't engage if waiting to takeoff...
						//
						
						break;
					}

					// deliberate fall-through...
				}
				case OPERATIONAL_STATE_NAVIGATING:
				case OPERATIONAL_STATE_STOPPED:
				{
					group = get_local_entity_parent (en, LIST_TYPE_MEMBER);

					if (group)
					{
						value = get_local_entity_int_value (group, INT_TYPE_ENGAGE_ENEMY);
					}

					break;
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_EXPLOSIVE_POWER:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].explosive_power;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_EXPLOSIVE_QUALITY:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].explosive_quality;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FORCE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].force;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FORCE_INFO_CATAGORY:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].force_info_catagory;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_FORMATION_POSITION:
		////////////////////////////////////////
		{
			value = raw->formation_position;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GROUP_LEADER:
		////////////////////////////////////////
		{
			if ((get_local_entity_parent (en, LIST_TYPE_MEMBER)) && (get_local_entity_child_pred (en, LIST_TYPE_MEMBER) == NULL))
			{
				value = TRUE;
			}
			else
			{
				value = FALSE;
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GROUP_MEMBER_ID:
		////////////////////////////////////////
		{
			value = raw->group_member_number + 1;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GROUP_MEMBER_NUMBER:
		////////////////////////////////////////
		{
			value = raw->group_member_number;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GROUP_MEMBER_STATE:
		////////////////////////////////////////
		{
			entity
				*task;

			//
			// Check Task
			//
			
			task = get_local_entity_current_task (en);

			if (task)
			{
				if (get_local_entity_int_value (task, INT_TYPE_ENTITY_SUB_TYPE) == ENTITY_SUB_TYPE_TASK_ENGAGE)
				{
					value = GROUP_MEMBER_STATE_ATTACKING;
				}
				else
				{
					value = GROUP_MEMBER_STATE_NAVIGATING;
				}
			}
			else
			{
				value = GROUP_MEMBER_STATE_IDLE;
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_GUNSHIP_RADAR_LOS_CLEAR:
		////////////////////////////////////////
		{
			value = raw->gunship_radar_los_clear;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_IDENTIFY_VEHICLE:
		////////////////////////////////////////
		{
			value = TRUE;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ID_NUMBER:
		////////////////////////////////////////
		{
			value = raw->id_number;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ID_NUMBER_SIGNIFICANT_DIGITS:
		////////////////////////////////////////
		{
			value = raw->id_number_significant_digits;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_INITIAL_DAMAGE_LEVEL:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].initial_damage_level;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDED:
		////////////////////////////////////////
		{

			switch (raw->operational_state)
			{

				case OPERATIONAL_STATE_LANDED:
				//case OPERATIONAL_STATE_REPAIRING:
				//case OPERATIONAL_STATE_REARMING:
				//case OPERATIONAL_STATE_REFUELING:
				{

					value = TRUE;

					break;
				}

				case OPERATIONAL_STATE_STOPPED:
				case OPERATIONAL_STATE_UNKNOWN:
				case OPERATIONAL_STATE_WAITING:
				case OPERATIONAL_STATE_ASLEEP:
				case OPERATIONAL_STATE_DEAD:
				case OPERATIONAL_STATE_DYING:
				case OPERATIONAL_STATE_LANDING:
				case OPERATIONAL_STATE_LANDING_HOLDING:
				case OPERATIONAL_STATE_NAVIGATING:
				case OPERATIONAL_STATE_TAKEOFF:
				case OPERATIONAL_STATE_TAKEOFF_HOLDING:
				case OPERATIONAL_STATE_TAXIING:
				{

					value = FALSE;

					break;
				}

				default:
				{

					debug_fatal ("VH_INT: unknown operational state");
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LIGHTS_ON:
		////////////////////////////////////////
		{
			value = raw->lights_on;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LOS_TO_TARGET:
		////////////////////////////////////////
		{
			value = raw->los_to_target;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MAP_ICON:
		////////////////////////////////////////
		{
			value = vehicle_database [raw->mob.sub_type].map_icon;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MAX_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].max_weapon_config_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MIN_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].min_weapon_config_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_MOBILE_MOVING:
		////////////////////////////////////////
		{

			switch (raw->operational_state)
			{

				case OPERATIONAL_STATE_ASLEEP:
				case OPERATIONAL_STATE_DEAD:
				case OPERATIONAL_STATE_LANDED:
				case OPERATIONAL_STATE_STOPPED:
				case OPERATIONAL_STATE_UNKNOWN:
				case OPERATIONAL_STATE_WAITING:
				{

					value = FALSE;

					break;
				}

				case OPERATIONAL_STATE_DYING:
				case OPERATIONAL_STATE_LANDING:
				case OPERATIONAL_STATE_LANDING_HOLDING:
				case OPERATIONAL_STATE_NAVIGATING:
				case OPERATIONAL_STATE_TAKEOFF:
				case OPERATIONAL_STATE_TAKEOFF_HOLDING:
				case OPERATIONAL_STATE_TAXIING:
				{

					value = TRUE;

					break;
				}

				default:
				{

					debug_fatal ("VH_INT: unknown operational state");
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OBJECT_3D_SHAPE:
		////////////////////////////////////////
		{
			value = raw->object_3d_shape;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OFFENSIVE_CAPABILITY:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].offensive_capability;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OPERATIONAL_STATE:
		////////////////////////////////////////
		{
			value = raw->operational_state;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_POINTS_VALUE:
		////////////////////////////////////////
		{
			value = vehicle_database [raw->mob.sub_type].points_value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_RADAR_ON:
		////////////////////////////////////////
		{
			//
			// vehicles must have radar and a target for the radar to be on
			//

			value = FALSE;

			if (vehicle_database[raw->mob.sub_type].threat_type != THREAT_TYPE_INVALID)
			{
				if (raw->mob.target_link.parent != NULL)
				{
					value = TRUE;
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SELECTED_WEAPON:
		////////////////////////////////////////
		{
			value = raw->selected_weapon;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SELECTED_WEAPON_SYSTEM_READY:
		////////////////////////////////////////
		{
			value = raw->selected_weapon_system_ready;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TARGET_PRIORITY_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].target_priority_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TARGET_SYMBOL_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].target_symbol_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TARGET_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].target_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TASK_LEADER:
		////////////////////////////////////////
		{
			entity
				*guide;

			value = FALSE;

			guide = get_local_entity_parent (en, LIST_TYPE_FOLLOWER);

			if (guide)
			{
				if (get_local_entity_ptr_value (guide, PTR_TYPE_TASK_LEADER) == en)
				{
					value = TRUE;
				}
			}

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TASK_TARGET_TYPE:
		////////////////////////////////////////
		{
			value = (TASK_TARGET_TYPE_ANY | TASK_TARGET_TYPE_MOBILE | TASK_TARGET_TYPE_VEHICLE);

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_THREAT_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].threat_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_TRACK_ENTITY_ON_MAP:
		////////////////////////////////////////
		{
			value = TRUE;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VIEW_CATEGORY:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].view_category;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VIEW_TYPE:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].view_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VIEWABLE:
		////////////////////////////////////////
		{
			value = raw->view_link.parent != NULL;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WARHEAD_EFFECTIVE_CLASS:
		////////////////////////////////////////
		{
			value = vehicle_database[raw->mob.sub_type].warhead_effective_class;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_AND_TARGET_VECTORS_VALID:
		////////////////////////////////////////
		{
			value = raw->weapon_and_target_vectors_valid;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_CONFIG_TYPE:
		////////////////////////////////////////
		{
			value = raw->weapon_config_type;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_WEAPON_SYSTEM_READY:
		////////////////////////////////////////
		{
			////////////////////////////////////////
			//
			// WARNING! This only returns a valid value for vehicles that have weapon
			//          systems to be made ready in the current weapons configuration.
			//
			////////////////////////////////////////

			if (get_local_entity_float_value (en, FLOAT_TYPE_WEAPON_SYSTEM_READY_STATE) == VEHICLE_WEAPON_SYSTEM_READY_OPEN_FLOAT_VALUE)
			{
				value = TRUE;
			}
			else
			{
				value = FALSE;
			}

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}

	return (value);
}
Example #27
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	keysite
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (keysite *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_ALIVE:
		////////////////////////////////////////
		{
			raw->alive = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_ENTITY_SUB_TYPE:
		////////////////////////////////////////
		{
			raw->sub_type = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_IN_USE:
		////////////////////////////////////////
		{
			raw->in_use = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_ID:
		////////////////////////////////////////
		{
			raw->keysite_id = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_KEYSITE_USABLE_STATE:
		////////////////////////////////////////
		{
			raw->keysite_usable_state = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_LANDING_TYPES:
		////////////////////////////////////////
		{
			raw->landing_types = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_OBJECT_INDEX:
		////////////////////////////////////////
		{
			raw->object_index = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			raw->side = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}
Example #28
0
static void set_local_int_value (entity *en, int_types type, int value)
{
	sound_effect
		*raw;

	#if DEBUG_MODULE

	debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value);

	#endif

	raw = (sound_effect *) get_local_entity_data (en);

	switch (type)
	{
		////////////////////////////////////////
		case INT_TYPE_SIDE:
		////////////////////////////////////////
		{
			raw->side = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_CHANNEL:
		////////////////////////////////////////
		{
			raw->sound_channel = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_LOOPING:
		////////////////////////////////////////
		{
			raw->looping = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_PANNING:
		////////////////////////////////////////
		{
			raw->panning = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_EFFECT_SEQUENCE_COUNT:
		////////////////////////////////////////
		{
			raw->sound_effect_sequence_count = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_SOUND_LOCALITY:
		////////////////////////////////////////
		{
			raw->sound_locality = value;

			break;
		}
		////////////////////////////////////////
		case INT_TYPE_VALID_SOUND_EFFECT:
		////////////////////////////////////////
		{
			raw->valid_sound_effect = value;

			break;
		}
		////////////////////////////////////////
		default:
		////////////////////////////////////////
		{
			debug_fatal_invalid_int_type (en, type);

			break;
		}
	}
}