script SAMSARA_DECORATE (int choice, int arg1, int arg2) { int clipcount; int result; int i, j, k; int x, y, z; int armorIndex, armorToSet; int pln = PlayerNumber(); switch (choice) { case 1: result = GetActorProperty(0, APROP_Dropped); break; case 2: if (CheckInventory("WolfenMovement") == 1) { SetActorState(0, "Spawn"); } break; case 3: result = !(GetCVar("sv_itemrespawn") || GetCVar("sv_weaponstay")); break; case 4: result = isInvasion() || !(isCoop() || isSinglePlayer()); break; case 5: SetActivatorToTarget(0); result = CheckInventory("Cell"); if (arg1) { TakeInventory("Cell", result); } break; case 6: result = GetCVar("skulltag"); break; case 7: if (arg2 != 1) { GiveQuad(arg1); } else { if (isLMS()) { if (GetCvar("samsara_permaquad") == 1) { GiveInventory("QuadDamageItem", 1); } break; } GiveQuad(arg1); if (GetCvar("samsara_permaquad") == 1)//if (isCoop() || isSinglePlayer()) { GiveInventory("QuadDamageItem", 1); } } break; case 8: result = defaultCVar("samsara_cl_expparticles", 0); if (!result) { result = 100; } result = max(0, result); result *= max(arg1, 1); result /= max(arg2, 1); GiveInventory("QuakeExplosionCounter", result); break; case 9: clipcount = CheckInventory("Clip"); if (clipcount < 50) { GiveInventory("Clip", 50 - clipcount); TakeInventory("Clip", CheckInventory("Clip") - 50); result = 1; } break; case 10: TakeInventory("QuakeExplosionCounter", arg1); result = CheckInventory("QuakeExplosionCounter"); break; case 15: SetActorProperty(0, APROP_Speed, percFloat(arg1, arg2)); break; case 16: if (GameType () != GAME_SINGLE_PLAYER) { SetHudSize(400, 300, 0); Hudmessage(s:"Press any button to respawn."; HUDMSG_PLAIN,1,CR_LIGHTBLUE,200.4,9.1,1.75); delay(15); if (!CheckInventory("DukeBallgag")) { LocalAmbientSound("duke/mpdeath",127); GiveInventory("DukeTauntCooldown",5); ACS_ExecuteAlways(205,0,0); } } break; case 17: if (arg1) { result = GetCVar("samsara_permault"); } else { result = GetCVar("sv_weaponstay"); } break; case 18: if (MapArmors[0] == -1) { CheckMapArmors(); } SetArmorMode(); i = Timer() != 0; if (MapArmors[ARMOR_YELLOW] == 1) { i += 2; } SetActorState(0, ArmorModeStates[ArmorMode][i]); break; case 19: result = isLMS(); break; case 20: SetArmorMode(); armorIndex = -1; armorToSet = arg1; for (i = 0; i < ARMORCOUNT; i++) { if (GetArmorType(ArmorItems[ArmorMode][i][0], pln)) { armorIndex = i; break; } } arg1 = middle(0, arg1, ARMORCOUNT-1); i = CheckInventory("Armor"); j = ArmorItems[ArmorMode][arg1][1]; if (j == 0) { result = 0; break; } /* If we're adding armor, always follow through Else, if the ending armor count is lower than the current armor count and we're not upgrading our armor, give up now */ if (arg2 > 0) { if (arg1 <= armorIndex) { armorToSet = armorIndex; } } else if (((arg2 == 0 && i > j) || (arg2 < 0 && i > -arg2)) && (arg1 <= armorIndex)) { result = 0; break; } if (arg2 <= 0) { TakeInventory("BasicArmor", i); GiveInventory(ArmorItems[ArmorMode][armorToSet][0], 1); k = CheckInventory("Armor"); if (arg2 == 0) { break; } TakeInventory("BasicArmor", k-1); GiveInventory("InfiniteArmorBonus", -arg2 - 1); } else { TakeInventory("BasicArmor", i); GiveInventory(ArmorItems[ArmorMode][armorToSet][0], 1); k = CheckInventory("Armor"); TakeInventory("BasicArmor", k-1); GiveInventory("InfiniteArmorBonus", (i + arg2) - 1); } result = 1; break; case 21: i = CheckInventory("Armor"); if (i < arg1) { result = 0; break; } TakeInventory("BasicArmor", i-arg1); result = 1; break; case 22: result = GetCVar("samsara_nohealthcap"); break; case 23: GiveInventory("TimeBombPause", 1); Delay(arg1); TakeInventory("TimeBombPause", 1); break; case 24: result = GetCVar("samsara_noult"); break; case 25: if (GameType() == GAME_NET_COOPERATIVE) { AmbientSound("quake/invisannouncer",127); } else { LocalAmbientSound("quake/invisannouncer",127); } break; case 26: if (CheckInventory("PowerInvisibility") == 0) { GiveInventory("PowerInvisibility",1); } else { TakeInventory("PowerInvisibility",1); delay(1); GiveInventory("PowerShadow",1); delay(1); GiveInventory("PowerShadow",1); } break; case 27: result = GetCVar("samsara_nounique"); break; case 28: result = GetCVar("samsara_noinvuln"); break; case 29: result = GetCVar("instagib"); break; case 30: result = GetCVar("samsara_cl_bloodyhell"); break; case 31: result = GetCVar("samsara_cl_bloodypersistent"); break; case 32: result = GetCVar("samsara_nohealth"); break; case 33: result = GetCVar("samsara_vanillaquake"); break; }
ApiDatabase::ApiDatabase(const GameType game, const std::string& gamePath, const std::string& gameLocalDataPath) : game_(Game(GameType(game))) { game_.SetGamePath(gamePath); game_.Init(false, gameLocalDataPath); }
void RomInfo::SaveToDatabase() { MSqlQuery query(MSqlQuery::InitCon()); bool inserting = false; if (m_id == 0) inserting = true; if (inserting) { LOG(VB_GENERAL, LOG_INFO, LOC + QString("Adding %1 - %2").arg(Rompath()) .arg(Romname())); query.prepare("INSERT INTO gamemetadata " "(system, romname, gamename, genre, year, gametype, " "rompath, country, crc_value, diskcount, display, plot, " "publisher, version, fanart, boxart, screenshot) " "VALUES (:SYSTEM, :ROMNAME, :GAMENAME, :GENRE, :YEAR, " ":GAMETYPE, :ROMPATH, :COUNTRY, :CRC32, '1', '1', :PLOT, " ":PUBLISHER, :VERSION, :FANART, :BOXART, :SCREENSHOT)"); query.bindValue(":SYSTEM",System()); query.bindValue(":ROMNAME",Romname()); query.bindValue(":GAMENAME",Gamename()); query.bindValue(":GENRE",Genre()); query.bindValue(":YEAR",Year()); query.bindValue(":GAMETYPE",GameType()); query.bindValue(":ROMPATH",Rompath()); query.bindValue(":COUNTRY",Country()); query.bindValue(":CRC32", QString()); query.bindValue(":PLOT", Plot()); query.bindValue(":PUBLISHER", Publisher()); query.bindValue(":VERSION", Version()); query.bindValue(":FANART", Fanart()); query.bindValue(":BOXART", Boxart()); query.bindValue(":SCREENSHOT", Screenshot()); } else { query.prepare("UPDATE gamemetadata " "SET version = 'CUSTOM', " " gamename = :GAMENAME," " genre = :GENRE," " year = :YEAR," " country = :COUNTRY," " plot = :PLOT," " publisher = :PUBLISHER," " favorite = :FAVORITE," " screenshot = :SCREENSHOT," " fanart = :FANART," " boxart = :BOXART, " " inetref = :INETREF " "WHERE gametype = :GAMETYPE AND " " romname = :ROMNAME"); query.bindValue(":GAMENAME", Gamename()); query.bindValue(":GENRE", Genre()); query.bindValue(":YEAR", Year()); query.bindValue(":COUNTRY", Country()); query.bindValue(":PLOT", Plot()); query.bindValue(":PUBLISHER", Publisher()); query.bindValue(":FAVORITE", Favorite()); query.bindValue(":SCREENSHOT", Screenshot()); query.bindValue(":FANART", Fanart()); query.bindValue(":BOXART", Boxart()); query.bindValue(":INETREF", Inetref()); query.bindValue(":GAMETYPE", GameType()); query.bindValue(":ROMNAME", Romname()); } if (!query.exec()) { MythDB::DBError("RomInfo::SaveToDatabase", query); return; } }
void RomInfo::UpdateDatabase() { MSqlQuery query(MSqlQuery::InitCon()); query.prepare("SELECT gamename,genre,year,country,plot,publisher, " "favorite,screenshot,fanart,boxart,inetref " "FROM gamemetadata " "WHERE gametype = :GAMETYPE " "AND romname = :ROMNAME"); query.bindValue(":GAMETYPE", GameType()); query.bindValue(":ROMNAME", Romname()); if (!query.exec()) { MythDB::DBError("RomInfo::UpdateDatabase", query); return; } if (!query.next()) return; QString t_gamename = query.value(0).toString(); QString t_genre = query.value(1).toString(); QString t_year = query.value(2).toString(); QString t_country = query.value(3).toString(); QString t_plot = query.value(4).toString(); QString t_publisher = query.value(5).toString(); bool t_favourite = query.value(6).toBool(); QString t_screenshot = query.value(7).toString(); QString t_fanart = query.value(8).toString(); QString t_boxart = query.value(9).toString(); QString t_inetref = query.value(10).toString(); if ((t_gamename != Gamename()) || (t_genre != Genre()) || (t_year != Year()) || (t_country != Country()) || (t_plot != Plot()) || (t_publisher != Publisher()) || (t_favourite != Favorite()) || (t_screenshot != Screenshot()) || (t_fanart != Fanart()) || (t_boxart != Boxart()) || (t_inetref != Inetref())) { query.prepare("UPDATE gamemetadata " "SET version = 'CUSTOM', " " gamename = :GAMENAME," " genre = :GENRE," " year = :YEAR," " country = :COUNTRY," " plot = :PLOT," " publisher = :PUBLISHER," " favorite = :FAVORITE," " screenshot = :SCREENSHOT," " fanart = :FANART," " boxart = :BOXART, " " inetref = :INETREF " "WHERE gametype = :GAMETYPE AND " " romname = :ROMNAME"); query.bindValue(":GAMENAME", Gamename()); query.bindValue(":GENRE", Genre()); query.bindValue(":YEAR", Year()); query.bindValue(":COUNTRY", Country()); query.bindValue(":PLOT", Plot()); query.bindValue(":PUBLISHER", Publisher()); query.bindValue(":FAVORITE", Favorite()); query.bindValue(":SCREENSHOT", Screenshot()); query.bindValue(":FANART", Fanart()); query.bindValue(":BOXART", Boxart()); query.bindValue(":INETREF", Inetref()); query.bindValue(":GAMETYPE", GameType()); query.bindValue(":ROMNAME", Romname()); if (!query.exec()) { MythDB::DBError("RomInfo::UpdateDatabase", query); return; } } }