MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / HandleInventoryPowerups

Function HandleInventoryPowerups

Descent3/multisafe.cpp:2983–3022  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2981 return handled;
2982}
2983bool HandleInventoryPowerups(char *pname, msafe_struct *mstruct, uint8_t *pickup) {
2984 bool handled = false;
2985 int pnum = IOBJ->id;
2986 // Afterburner cooler
2987 if (!stricmp("Afterburner", pname)) {
2988 handled = true;
2989 int ab_id = FindObjectIDName("Afterburner");
2990 if (ab_id != -1) {
2991
2992 int inv_count = Players[pnum].inventory.GetTypeIDCount(OBJ_POWERUP, ab_id);
2993 if (inv_count == 0) {
2994 // pickit up
2995 *pickup = 1;
2996 Players[pnum].inventory.Add(OBJ_POWERUP, ab_id, NULL, -1, -1, INVAF_TIMEOUTONSPEW, TXT_ABCOOLER);
2997 if (pnum == Player_num)
2998 AddFilteredHUDMessage(TXT_AFTERBURNERCOOLER);
2999 } else if (pnum == Player_num) {
3000 AddFilteredHUDMessage(TXT_ABCOOLERHAVE);
3001 }
3002 }
3003 }
3004 // Energy->Shield Converter
3005 else if (!stricmp("Converter", pname)) {
3006 handled = true;
3007 int es_id = FindObjectIDName("Converter");
3008 if (es_id != -1) {
3009 int inv_count = Players[pnum].inventory.GetTypeIDCount(OBJ_POWERUP, es_id);
3010 if (inv_count == 0) {
3011 // pick it up
3012 *pickup = 1;
3013 Players[pnum].inventory.Add(OBJ_POWERUP, es_id, NULL, -1, -1, INVAF_TIMEOUTONSPEW);
3014 if (pnum == Player_num)
3015 AddFilteredHUDMessage(TXT_ETOSCONVERTER);
3016 } else if (pnum == Player_num) {
3017 AddFilteredHUDMessage(TXT_ETOSCONVHAVE);
3018 }
3019 }
3020 }
3021 return handled;
3022}

Callers 1

msafe_DoPowerupFunction · 0.85

Calls 4

FindObjectIDNameFunction · 0.85
AddFilteredHUDMessageFunction · 0.85
GetTypeIDCountMethod · 0.80
AddMethod · 0.45

Tested by

no test coverage detected