93 lines
3.1 KiB
Plaintext
93 lines
3.1 KiB
Plaintext
|
//:://////////////////////////////////////////////
|
||
|
//:: Drug system functions
|
||
|
//:: prc_inc_drugfunc
|
||
|
//:://////////////////////////////////////////////
|
||
|
/** @file
|
||
|
A bunch of functions common to the drug
|
||
|
scripts.
|
||
|
|
||
|
@author Ornedan
|
||
|
@data Created 2006.05.29
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Structures */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Constants */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Function prototypes */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
/**
|
||
|
* Increments the overdose tracking counter by one for the given drug and queues
|
||
|
* decrementing it by one after the given period.
|
||
|
* The value of this counter is what will be returned by GetHasOverdosed().
|
||
|
*
|
||
|
*/
|
||
|
void IncrementOverdoseTracker(object oDrugUser, string sODIdentifier, float fODPeriod);
|
||
|
|
||
|
/**
|
||
|
* Checks if the given drug user is currently in the overdose period of the given drug.
|
||
|
* The value returned is the number of drug uses in the overdose period of which is
|
||
|
* currently active.
|
||
|
*
|
||
|
* @param oDrugUser A creature using a drug.
|
||
|
* @param sODIdentifier The name of the drug's overdose identifier.
|
||
|
* @return The current value of the overdose variable - how many drug uses of
|
||
|
* the given drug are right now in their overdose period.
|
||
|
*/
|
||
|
int GetOverdoseCounter(object oDrugUser, string sODIdentifier);
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Includes */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Internal functions */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
/** Internal function.
|
||
|
* Implements the decrementing of the overdose counters.
|
||
|
*
|
||
|
* @param oDrugUser A creature using a drug.
|
||
|
* @param sODIdentifier The name of the drug's overdose identifier.
|
||
|
*/
|
||
|
void _prc_inc_drugfunc_DecrementOverdoseTracker(object oDrugUser, string sODIdentifier)
|
||
|
{
|
||
|
// Delete the variable if decrementing would it would make it 0
|
||
|
if(GetLocalInt(oDrugUser, sODIdentifier) <= 1)
|
||
|
DeleteLocalInt(oDrugUser, sODIdentifier);
|
||
|
else
|
||
|
SetLocalInt(oDrugUser, sODIdentifier, GetLocalInt(oDrugUser, sODIdentifier) - 1);
|
||
|
}
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////
|
||
|
/* Function definitions */
|
||
|
//////////////////////////////////////////////////
|
||
|
|
||
|
void IncrementOverdoseTracker(object oDrugUser, string sODIdentifier, float fODPeriod)
|
||
|
{
|
||
|
SetLocalInt(oDrugUser, sODIdentifier, GetLocalInt(oDrugUser, sODIdentifier) + 1);
|
||
|
DelayCommand(fODPeriod, _prc_inc_drugfunc_DecrementOverdoseTracker(oDrugUser, sODIdentifier));
|
||
|
}
|
||
|
|
||
|
|
||
|
int GetOverdoseCounter(object oDrugUser, string sODIdentifier)
|
||
|
{
|
||
|
return GetLocalInt(oDrugUser, sODIdentifier);
|
||
|
}
|
||
|
|
||
|
|
||
|
// Test main
|
||
|
//void main(){}
|