Ejemplo n.º 1
0
/**
 * @brief Remove the specified ufo from geoscape
 * @sa CP_MissionRemove
 * @note Keep in mind that you have to update the ufo pointers after you called
 * this function
 */
void UFO_RemoveFromGeoscape (aircraft_t* ufo)
{
	/* Remove ufo from ufos list */
	const ptrdiff_t num = (ptrdiff_t) (ufo - ccs.ufos);

	Com_DPrintf(DEBUG_CLIENT, "Remove ufo from geoscape: '%s'\n", ufo->id);

	REMOVE_ELEM_ADJUST_IDX(ccs.ufos, num, ccs.numUFOs);
}
Ejemplo n.º 2
0
/**
 * @brief Delete the selected entry from the queue.
 * @param[in] base Pointer to base, where the queue is.
 * @param[in] queue Pointer to the queue.
 * @param[in] index Selected index in queue.
 */
void PR_QueueDelete (base_t* base, production_queue_t* queue, int index)
{
	production_t* prod = &queue->items[index];
	const technology_t* tech = PR_GetTech(&prod->data);
	if (tech == nullptr)
		cgi->Com_Error(ERR_DROP, "No tech pointer for production");

	PR_ResetUFODisassembly(prod);

	assert(base);
	PR_UpdateRequiredItemsInBasestorage(base, prod->amount, &tech->requireForProduction);

	REMOVE_ELEM_ADJUST_IDX(queue->items, index, queue->numItems);

	/* Adjust ufos' disassembly pointer */
	for (int i = index; i < queue->numItems; i++) {
		production_t* disassembly = &queue->items[i];
		PR_SetUFODisassembly(disassembly);
	}
}
Ejemplo n.º 3
0
/**
 * @brief Remove a projectile from ccs.projectiles
 * @param[in] projectile The projectile to remove
 * @sa AIRFIGHT_AddProjectile
 */
static qboolean AIRFIGHT_RemoveProjectile (aircraftProjectile_t *projectile)
{
	const ptrdiff_t num = (ptrdiff_t)(projectile - ccs.projectiles);
	REMOVE_ELEM_ADJUST_IDX(ccs.projectiles, num, ccs.numProjectiles);
	return qtrue;
}
Ejemplo n.º 4
0
/**
 * @brief Remove a projectile from ccs.projectiles
 * @param[in] projectile The projectile to remove
 * @sa AIRFIGHT_AddProjectile
 */
static void AIRFIGHT_RemoveProjectile (aircraftProjectile_t* projectile)
{
	const ptrdiff_t num = (ptrdiff_t)(projectile - ccs.projectiles);
	REMOVE_ELEM_ADJUST_IDX(ccs.projectiles, num, ccs.numProjectiles);
}