Skip to content

Commit

Permalink
Merge pull request #217 from alliedmodders/tf2-holidayvars
Browse files Browse the repository at this point in the history
Convert TFHoliday values to pubvars.
  • Loading branch information
psychonic committed Dec 10, 2014
2 parents 0295f81 + 09060c2 commit 46d620c
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 10 deletions.
31 changes: 31 additions & 0 deletions extensions/tf2/holiday.cpp
Expand Up @@ -126,9 +126,40 @@ void HolidayManager::UnhookIfNecessary()
m_iHookID = 0;
}

static inline void PopulateHolidayVar(IPluginRuntime *pRuntime, const char *pszName)
{
uint32_t idx;
if (pRuntime->FindPubvarByName(pszName, &idx) != SP_ERROR_NONE)
return;

int varValue = -1;
const char *key = g_pGameConf->GetKeyValue(pszName);
if (key)
{
varValue = atoi(key);
}

sp_pubvar_t *var;
pRuntime->GetPubvarByIndex(idx, &var);
*var->offs = varValue;
}

void HolidayManager::OnPluginLoaded(IPlugin *plugin)
{
HookIfNecessary();

auto *pRuntime = plugin->GetRuntime();
PopulateHolidayVar(pRuntime, "TFHoliday_Birthday");
PopulateHolidayVar(pRuntime, "TFHoliday_Halloween");
PopulateHolidayVar(pRuntime, "TFHoliday_Christmas");
PopulateHolidayVar(pRuntime, "TFHoliday_EndOfTheLine");
PopulateHolidayVar(pRuntime, "TFHoliday_ValentinesDay");
PopulateHolidayVar(pRuntime, "TFHoliday_MeetThePyro");
PopulateHolidayVar(pRuntime, "TFHoliday_SpyVsEngyWar");
PopulateHolidayVar(pRuntime, "TFHoliday_FullMoon");
PopulateHolidayVar(pRuntime, "TFHoliday_HalloweenOrFullMoon");
PopulateHolidayVar(pRuntime, "TFHoliday_HalloweenOrFullMoonOrValentines");
PopulateHolidayVar(pRuntime, "TFHoliday_AprilFools");
}

void HolidayManager::OnPluginUnloaded(IPlugin *plugin)
Expand Down
21 changes: 21 additions & 0 deletions gamedata/sm-tf2.games.txt
Expand Up @@ -146,4 +146,25 @@
}
}
}

/*
* TF2 Holiday index values. Formerly SM TFHoliday enum.
*/
"tf"
{
"Keys"
{
"TFHoliday_Birthday" "1"
"TFHoliday_Halloween" "2"
"TFHoliday_Christmas" "3"
"TFHoliday_EndOfTheLine" "4"
"TFHoliday_ValentinesDay" "5"
"TFHoliday_MeetThePyro" "6"
"TFHoliday_SpyVsEngyWar" "7"
"TFHoliday_FullMoon" "8"
"TFHoliday_HalloweenOrFullMoon" "9"
"TFHoliday_HalloweenOrFullMoonOrValentines" "10"
"TFHoliday_AprilFools" "11"
}
}
}
23 changes: 13 additions & 10 deletions plugins/include/tf2.inc
Expand Up @@ -170,18 +170,21 @@ const Float:TFCondDuration_Infinite = -1.0;

enum TFHoliday
{
TFHoliday_Birthday = 1,
TFHoliday_Halloween,
TFHoliday_Christmas,
TFHoliday_ValentinesDay,
TFHoliday_MeetThePyro,
TFHoliday_SpyVsEngyWar,
TFHoliday_FullMoon,
TFHoliday_HalloweenOrFullMoon,
TFHoliday_HalloweenOrFullMoonOrValentines,
TFHoliday_AprilFools,
TFHoliday_Invalid = -1
};

public const TFHoliday:TFHoliday_Birthday;
public const TFHoliday:TFHoliday_Halloween;
public const TFHoliday:TFHoliday_Christmas;
public const TFHoliday:TFHoliday_EndOfTheLine;
public const TFHoliday:TFHoliday_ValentinesDay;
public const TFHoliday:TFHoliday_MeetThePyro;
public const TFHoliday:TFHoliday_SpyVsEngyWar;
public const TFHoliday:TFHoliday_FullMoon;
public const TFHoliday:TFHoliday_HalloweenOrFullMoon;
public const TFHoliday:TFHoliday_HalloweenOrFullMoonOrValentines;
public const TFHoliday:TFHoliday_AprilFools;

enum TFObjectType
{
TFObject_CartDispenser = 0,
Expand Down

0 comments on commit 46d620c

Please sign in to comment.