Implement weapon first-use tooltips.

Change some cvar defaults.
This commit is contained in:
Mari the Deer 2021-09-16 16:31:44 +02:00
commit 894f2ed46a
36 changed files with 399 additions and 12 deletions

View file

@ -53,7 +53,7 @@ nosave int swwm_scrscale = 2; // score scaling (0 = use GZDoom scaling)
nosave int swwm_numscale = 3; // damnum scaling (0 = use GZDoom scaling)
nosave int swwm_poiscale = 1; // point of interest scaling (0 = use GZDoom scaling)
nosave int swwm_detscale = 2; // item sense scaling (0 = use GZDoom scaling)
server bool swwm_blood = false; // custom blood/gibbing
server bool swwm_blood = true; // custom blood/gibbing
server int swwm_maxblood = 400; // max blood effects at any time
server int swwm_maxgibs = 100; // max gibs at any time
server int swwm_maxcasings = 200; // max casings and spent mags at any time
@ -69,7 +69,7 @@ server bool swwm_notrack = false; // disables all combat tracking (useful to sp
server bool swwm_ynykronalert = false; // caps ynykron alert (so it doesn't wake everyone up)
nosave bool swwm_menupause = true; // pause the game when demolitionist menu is open
nosave noarchive bool swwm_debugblast = false; // debug visual aid for DoExplosion
nosave bool swwm_funtags = false; // replace vanilla monster names with silly ones
nosave bool swwm_funtags = true; // replace vanilla monster names with silly ones
server bool swwm_omnibust = false; // add wallbusting effect to all weapons
server bool swwm_superfuel = false; // enable unlimited fuel
server bool swwm_partytime = false; // killed enemies burst into confetti
@ -87,10 +87,10 @@ nosave bool swwm_camhud = false; // keep full hud visible when operating camera
server bool swwm_uncapalert = false; // all noise alerts have infinite range
nosave int swwm_damagetarget = 1; // conditional healthbar hiding (1 - hide until damage is first taken, 2 - hide if at full health)
server int swwm_strictuntouchable = 0; // untouchable bonus ends... (1 - even if your armor absorbed all the damage, 2 - if you get hit by anything PERIOD)
server bool swwm_silencemap = false; // silences the map when all kills/items/secrets are achieved
server bool swwm_silencemap = true; // silences the map when all kills/items/secrets are achieved
nosave int swwm_shadowdist = 2000; // max distance beyond which blob shadows are no longer rendered, helps performance
server bool swwm_swapweapons = true; // [DLC1] allows carrying only one weapon in each slot (excluding starter melee)
nosave int swwm_forcestats = 0; // always shows level stats on the HUD, not just when the automap is open (2 - also show map name, otherwise only stats)
nosave int swwm_forcestats = 1; // always shows level stats on the HUD, not just when the automap is open (2 - also show map name, otherwise only stats)
user int swwm_funtrails = 0; // recolors trails of eviscerator chunks and sheen bullets
server int swwm_pistolstart = 0; // enforces pistol start for all maps (excluding hubs) [2 - only between clusters]
nosave int swwm_numcolor_scr = 5; // font color for score numbers (default: gold)
@ -99,8 +99,8 @@ nosave int swwm_numcolor_dmg = 6; // font color for damage numbers (default: re
nosave int swwm_numcolor_hp = 7; // font color for health numbers (default: blue)
nosave int swwm_numcolor_ap = 3; // font color for armor numbers (default: green)
server int swwm_drlaskill = 3; // [DRLA Monsters] skill setting for monster spawns
nosave bool swwm_itemsparkles = false; // visual aid for low visibility items
nosave bool swwm_itemglows = false; // distant items glow
nosave bool swwm_itemsparkles = true; // visual aid for low visibility items
nosave bool swwm_itemglows = true; // distant items glow
server bool swwm_singlefirst = false; // single weapons are selected before dual ones, has to be a server cvar due to limitations
nosave bool swwm_uniqstats = false; // only list stats from the same map once, rather than for each single visit
nosave int swwm_filterachievements = 1; // filter for achievements at 0%: 0 - no filter, 1 - obscure text, 2 - don't show
@ -108,15 +108,16 @@ nosave noarchive bool swwm_debugview = false; // debug visual aid for various th
nosave noarchive bool swwm_oldcheat = false; // set to true if you used a SWWM Platinum cheat, so the easter egg only appears once per session
server bool swwm_selflight = true; // player emits light
server bool swwm_usetopickup = false; // allow item pickup only by pressing use
server bool swwm_meleepickup = false; // allow picking up items through melee
server bool swwm_meleepickup = true; // allow picking up items through melee
nosave bool swwm_buttsfx = true; // buttslam homerun SFX
nosave int swwm_sewercount = 0; // I'm sorry Civvie
server bool swwm_ondemandammo = false; // don't spawn ammo for unavailable weapons
server bool swwm_ondemandammo = true; // don't spawn ammo for unavailable weapons
user float swwm_bumpstrength = 1.0; // intensity of fov bumping
server bool swwm_nomagdrop = true; // does not drop spent magazines (the "environmentally conscious" option)
user bool swwm_autousebarrier = true; // auto-use elemental coating when standing on damaging floors
server int swwm_enforceautousebarrier = 0; // enforced auto-use for coating
nosave bool swwm_nomapmsg = false; // disables special map dialogue messages
nosave bool swwm_weapontooltips = true; // shows a tooltip on weapon operation when first selected
// minimap settings
nosave bool swwm_mm_enable = true; // show a minimap below the score counter

View file

@ -717,6 +717,129 @@ SWWM_DMSPREAD = "Spread:";
SWWM_PLACE1 = "1st";
SWWM_PLACE2 = "2nd";
SWWM_PLACE3 = "3rd";
// weapon tooltips
TT_PUSHER =
"\cfFire:\c- Drill.\n"
"\cfAltfire:\c- Charged attack.";
TT_DEEPIMPACT =
"\cfFire:\c- Air push.\n"
"\cfAltfire:\c- Charged shot.\n"
"\cfReload:\c- Pump air.";
TT_EXPLODIUM =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Throw magazine.\n"
"\cfReload:\c- Reload weapon.";
TT_EXPLODIUM2 =
"\cfFire:\c- Shoot right weapon.\n"
"\cfAltfire:\c- Shoot left weapon.\n"
"\cfReload:\c- Reload weapon(s).";
TT_SPREADGUN =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Select ammo.\n"
"\cfReload:\c- Reload / switch ammo.\n"
"\cfAltfire+Fire:\c- Unload ammo.";
TT_WALLBUSTER =
"\cfFire:\c- Shoot one barrel.\n"
"\cfAltfire:\c- Shoot one cylinder.\n"
"\cfZoom:\c- Shoot everything.\n"
"\cfReload:\c- Reload weapon.";
TT_EVISCERATOR =
"\cfFire:\c- Shrapnel shot.\n"
"\cfAltfire:\c- Grenade shot.\n"
"\cfZoom:\c- Toggle spread.";
TT_HELLBLAZER =
"\cfFire:\c- Load rockets, release to shoot.\n"
"\cfAltfire:\c- Load grenades, release to shoot.\n"
"\cfZoom:\c- Select ammo.\n"
"\cfReload:\c- Reload / switch ammo.\n"
"\cx(More controls in library)\c-";
TT_SPARKSTER =
"\cfFire:\c- Orb shot.\n"
"\cfAltfire:\c- Beam shot.\n"
"\cfZoom:\c- Seeker shot.\n"
"\cfReload:\c- Reload / double load.";
TT_SILVERBULLET =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Select ammo.\n"
"\cfZoom:\c- Use scope.\n"
"\cfReload:\c- Reload / switch ammo.\n"
"\cfAltfire+Fire:\c- Manual bolt cycle.";
TT_CANDYGUN =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Throw magazine.\n"
"\cfReload:\c- Reload weapon.\n"
"\cfAltfire+Fire:\c- Throw gun.";
TT_YNYKRON =
"\cfFire:\c- Charge / shoot weapon.\n"
"\cfAltfire:\c- Flip magazine.\n"
"\cfReload:\c- Reload weapon / cancel charge.";
TT_HAMMER =
"\cfFire:\c- Side swings.\n"
"\cfAltfire:\c- Overhead swing.\n"
"\cfZoom:\c- Spin attack.";
TT_PLASMABLAST =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Charged shot.\n"
"\cfReload:\c- Reload weapon.";
TT_PLASMABLAST2 =
"\cfFire:\c- Shoot right weapon.\n"
"\cfAltfire:\c- Shoot left weapon.\n"
"\cfReload:\c- Reload weapon(s).";
TT_PUNTZERBETA =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Quickshot mode.\n"
"\cfReload:\c- Reload weapon.";
TT_PUNTZERGAMMA =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Cycle fire modes.\n"
"\cfReload:\c- Reload weapon.";
TT_SHEENHMG =
"\cfFire:\c- Slow fire.\n"
"\cfAltfire:\c- Moderate fire.\n"
"\cfZoom:\c- Fast fire.";
TT_QUADRAVOL =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Pump weapon.\n"
"\cfZoom:\c- Toggle spread mode.\n"
"\cfReload:\c- Load cells.\n"
"\cfFire+Altfire:\c- Hold to slamfire.";
TT_BLACKFIRE =
"\cfFire:\c- Freeze thrower.\n"
"\cfAltfire:\c- Icicle shot.\n"
"\cfReload:\c- Reload canister(s).";
TT_EMPCARBINE =
"\cfFire:\c- Hold to ionize, release to shoot.\n"
"\cfAltfire:\c- Multi-target ionization.\n"
"\cfZoom:\c- Use scope.\n"
"\cfReload:\c- Load rods.";
TT_RAYKHOM =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Lightning attack.\n"
"\cfReload:\c- Reload weapon.\n"
"\cfZoom:\c- Reload battery.";
TT_GRANDLANCE =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Charged shot.\n"
"\cfReload:\c- Reload weapon.\n"
"\cfZoom:\c- Reload battery.";
TT_FISTGUN =
"\cfFire:\c- Throw punch.\n"
"\cfAltfire:\c- Wide slap.";
TT_NEWSPARKSTER =
"\cfFire:\c- Kinylum shot.\n"
"\cfAltfire:\c- Nokron shot.\n"
"\cfFire+Altfire:\c- Combined shot.\n"
"\cfReload:\c- Load Kinylum.\n"
"\cfZoom:\c- Load Nokron.";
TT_MORTALRIFLE =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Shoot grenade.\n"
"\cfZoom:\c- Cycle fire modes.\n"
"\cfReload:\c- Reload weapon.";
TT_RAFANKOS =
"\cfFire:\c- Single beam.\n"
"\cfAltfire:\c- Multi beam.\n"
"\cfReload:\c- Reload weapon.";
// "Direct messages"
SWWM_INCOMINGMSG = "Incoming direct message from %s...";
// E1M8

View file

@ -200,6 +200,7 @@ SWWM_NOMAGDROP = "Drop Spent Mags";
SWWM_BARRIERUSE = "Automatically Use Coating";
SWWM_SVBARRIERUSE = "Enforce Coating Auto-Use";
SWWM_NOMAPMSG = "Map Special Messages";
SWWM_WEAPONTOOLTIPS = "Weapon Tooltips";
SWWM_MMTITLE = "Minimap Settings";
SWWM_MM_ENABLE = "Show Minimap";
SWWM_MM_ROTATE = "Rotate Minimap";
@ -346,6 +347,7 @@ TOOLTIP_SWWM_NOMAGDROP = "By default, the Demolitionist will be somewhat environ
TOOLTIP_SWWM_AUTOUSEBARRIER = "When enabled, elemental coating will be automatically used as needed if standing on damaging floors.";
TOOLTIP_SWWM_ENFORCEAUTOUSEBARRIER = "Enforce a specific coating auto-use setting for all players, or respects per-player settings.";
TOOLTIP_SWWM_NOMAPMSG = "Toggles special animated character messages on certain maps (usually vanilla).";
TOOLTIP_SWWM_WEAPONTOOLTIPS = "Shows a summary of controls when a weapon is selected for the first time.";
TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap under the score counter.";
TOOLTIP_SWWM_MM_ROTATE = "Rotates the minimap view.";
TOOLTIP_SWWM_MM_GRID = "Shows a 128x128 grid on the minimap.";

View file

@ -604,6 +604,129 @@ SWWM_PLACE3 = "3º";
SWWM_PLACE1_GENDER1 = "1ª";
SWWM_PLACE2_GENDER1 = "2ª";
SWWM_PLACE3_GENDER1 = "3ª";
// weapon tooltips
TT_PUSHER =
"\cfPrimario:\c- Taladrar.\n"
"\cfSecundario:\c- Ataque cargado.";
TT_DEEPIMPACT =
"\cfPrimario:\c- Impulso de aire.\n"
"\cfSecundario:\c- Disparo cargado.\n"
"\cfRecarga:\c- Bombear aire.";
TT_EXPLODIUM =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Lanzar cargador.\n"
"\cfRecarga:\c- Recargar arma.";
TT_EXPLODIUM2 =
"\cfPrimario:\c- Disparar arma derecha.\n"
"\cfSecundario:\c- Disparar arma izquierda.\n"
"\cfRecarga:\c- Recargar arma(s).";
TT_SPREADGUN =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Seleccionar munición.\n"
"\cfRecarga:\c- Recargar / cambiar munición.\n"
"\cfSecundario+Primario:\c- Descargar munición.";
TT_WALLBUSTER =
"\cfPrimario:\c- Disparar un cañón.\n"
"\cfSecundario:\c- Disparar un cilindro.\n"
"\cfZoom:\c- Disparar todo.\n"
"\cfRecarga:\c- Recargar arma.";
TT_EVISCERATOR =
"\cfPrimario:\c- Disparo de metralla.\n"
"\cfSecundario:\c- Disparo de granada.\n"
"\cfZoom:\c- Alternar dispersión.";
TT_HELLBLAZER =
"\cfPrimario:\c- Cargar cohetes, soltar para disparar.\n"
"\cfSecundario:\c- Cargar granadas, soltar para disparar.\n"
"\cfZoom:\c- Seleccionar munición.\n"
"\cfRecarga:\c- Recargar / cambiar munición.\n"
"\cx(Más controles en la biblioteca)\c-";
TT_SPARKSTER =
"\cfPrimario:\c- Disparo de orbe.\n"
"\cfSecundario:\c- Disparo de haz.\n"
"\cfZoom:\c- Disparo buscador.\n"
"\cfRecarga:\c- Recarga / doble carga.";
TT_SILVERBULLET =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Seleccionar munición.\n"
"\cfZoom:\c- Usar mira.\n"
"\cfRecarga:\c- Recargar / cambiar munición.\n"
"\cfSecundario+Primario:\c- Accionar perno manualmente.";
TT_CANDYGUN =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Lanzar cargador.\n"
"\cfRecarga:\c- Recargar arma.\n"
"\cfSecundario+Primario:\c- Lanzar pistola.";
TT_YNYKRON =
"\cfPrimario:\c- Cargar / disparar arma.\n"
"\cfSecundario:\c- Rotar cargador.\n"
"\cfRecarga:\c- Recargar arma / cancelar carga.";
TT_HAMMER =
"\cfPrimario:\c- Ataque lado a lado.\n"
"\cfSecundario:\c- Ataque vertical.\n"
"\cfZoom:\c- Ataque giratorio.";
TT_PLASMABLAST =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Disparo cargado.\n"
"\cfRecarga:\c- Recargar arma.";
TT_PLASMABLAST2 =
"\cfPrimario:\c- Disparar arma derecha.\n"
"\cfSecundario:\c- Disparar arma izquierda.\n"
"\cfRecarga:\c- Recargar arna(s).";
TT_PUNTZERBETA =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Modo de disparo rápido.\n"
"\cfRecarga:\c- Recargar arma.";
TT_PUNTZERGAMMA =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Cambiar modo de disparo.\n"
"\cfRecarga:\c- Recargar arma.";
TT_SHEENHMG =
"\cfPrimario:\c- Fuego lento.\n"
"\cfSecundario:\c- Fuego moderado.\n"
"\cfZoom:\c- Fuego rápido.";
TT_QUADRAVOL =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Bombear arma.\n"
"\cfZoom:\c- Alternar modo disperso.\n"
"\cfRecarga:\c- Cargar células.\n"
"\cfPrimario+Secundario:\c- Mantener para disparo rápido.";
TT_BLACKFIRE =
"\cfPrimario:\c- Lanzafrío.\n"
"\cfSecundario:\c- Disparo de carámbano.\n"
"\cfRecarga:\c- Recargar frasco(s).";
TT_EMPCARBINE =
"\cfPrimario:\c- Mantener para ionizar, soltar para disparar.\n"
"\cfSecundario:\c- Ionización multi-objetivo.\n"
"\cfZoom:\c- Usar mira.\n"
"\cfRecarga:\c- Cargar barras.";
TT_RAYKHOM =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Ataque de rayo.\n"
"\cfRecarga:\c- Recargar arma.\n"
"\cfZoom:\c- Recargar batería.";
TT_GRANDLANCE =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Disparo cargado.\n"
"\cfRecarga:\c- Recargar arma.\n"
"\cfZoom:\c- Recargar batería.";
TT_FISTGUN =
"\cfPrimario:\c- Lanzar puño.\n"
"\cfSecundario:\c- Bofetada en arco.";
TT_NEWSPARKSTER =
"\cfPrimario:\c- Disparo de Kinylum.\n"
"\cfSecundario:\c- Disparo de Nokron.\n"
"\cfPrimario+Secundario:\c- Disparo combinado.\n"
"\cfRecarga:\c- Cargar Kinylum.\n"
"\cfZoom:\c- Cargar Nokron.";
TT_MORTALRIFLE =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Disparar granada.\n"
"\cfZoom:\c- Cambiar modo de disparo.\n"
"\cfRecarga:\c- Recargar arma.";
TT_RAFANKOS =
"\cfPrimario:\c- Haz singular.\n"
"\cfSecundario:\c- Haz múltiple.\n"
"\cfRecarga:\c- Recargar arma.";
// "Direct messages"
SWWM_INCOMINGMSG = "Mensaje directo entrante de %s...";
// E1M8

View file

@ -199,6 +199,7 @@ SWWM_NOMAGDROP = "Tirar Cargadores Usados";
SWWM_BARRIERUSE = "Usar Revestimiento Automáticamente";
SWWM_SVBARRIERUSE = "Forzar Auto-Uso de Revestimiento";
SWWM_NOMAPMSG = "Mensajes Especiales de Mapa";
SWWM_WEAPONTOOLTIPS = "Información de Armas";
SWWM_MMTITLE = "Opciones de Minimapa";
SWWM_MM_ENABLE = "Mostrar Minimapa";
SWWM_MM_ROTATE = "Rotar Minimapa";
@ -345,6 +346,7 @@ TOOLTIP_SWWM_NOMAGDROP = "Por defecto, la Demolicionista será un poco conscient
TOOLTIP_SWWM_AUTOUSEBARRIER = "Cuando esto está activado, el revestimiento elemental será usado automáticamente si es necesario al estar en suelos dañinos.";
TOOLTIP_SWWM_ENFORCEAUTOUSEBARRIER = "Fuerza una opción específica de auto-uso de revestimiento para todos los jugadores, o respeta la opción de cada uno.";
TOOLTIP_SWWM_NOMAPMSG = "Activa mensajes especiales animados de personajes en ciertos mapas (usualmente vanilla).";
TOOLTIP_SWWM_WEAPONTOOLTIPS = "Muestra un resumen de controles cuando se selecciona un arma por primera vez.";
TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación.";
TOOLTIP_SWWM_MM_ROTATE = "Gira la vista del minimapa.";
TOOLTIP_SWWM_MM_GRID = "Muestra una cuadrícula de 128x128 en el minimapa.";

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r20 \cu(Wed 15 Sep 00:17:08 CEST 2021)\c-";
SWWM_SHORTVER="\cw1.1pre r20 \cu(2021-09-15 00:17:08)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r21 \cu(Thu 16 Sep 16:31:44 CEST 2021)\c-";
SWWM_SHORTVER="\cw1.1pre r21 \cu(2021-09-16 16:31:44)\c-";

View file

@ -190,6 +190,7 @@ OptionMenu "SWWMOptionMenu"
Option "$SWWM_BUSTERPAUSE", "swwm_cbtpause", "YesNo"
Option "$SWWM_COLLECTANIM", "swwm_collectanim", "YesNo"
Option "$SWWM_COLLECTANIMKEY", "swwm_collectanimkey", "YesNo"
Option "$SWWM_WEAPONTOOLTIPS", "swwm_weapontooltips", "YesNo"
StaticText " "
StaticText "$SWWM_CTITLE", "Blue"
Option "$SWWM_SKEYS", "swwm_sharekeys", "YesNo"

View file

@ -18,6 +18,7 @@ Class BlackfireIgniter : SWWMWeapon
Tag "$T_BLACKFIRE";
Inventory.PickupMessage "$T_BLACKFIRE";
Obituary "$O_BLACKFIRE";
SWWMWeapon.Tooltip "$TT_BLACKFIRE";
Inventory.Icon "graphics/HUD/Icons/W_Blackfire.png";
Weapon.SlotNumber 7;
Weapon.SlotPriority 2.;

View file

@ -16,6 +16,7 @@ Class PlasmaBlast : SWWMWeapon
Tag "$T_PLASMABLAST";
Inventory.PickupMessage "$T_PLASMABLAST";
Obituary "$O_PLASMABLAST";
SWWMWeapon.Tooltip "$TT_PLASMABLAST";
Inventory.Icon "graphics/HUD/Icons/W_PlasmaBlast.png";
Weapon.SlotNumber 2;
Weapon.SlotPriority 3.;
@ -44,6 +45,7 @@ Class DualPlasmaBlast : SWWMWeapon
{
Tag "$T_PLASMABLAST2";
Obituary "$O_PLASMABLAST";
SWWMWeapon.Tooltip "$TT_PLASMABLAST2";
Inventory.Icon "graphics/HUD/Icons/W_PlasmaBlast2.png";
Weapon.SlotNumber 2;
Weapon.SlotPriority 4.;

View file

@ -12,6 +12,7 @@ Class ItamexHammer : SWWMWeapon
Tag "$T_HAMMER";
Inventory.PickupMessage "$I_HAMMER";
Obituary "$O_HAMMER";
SWWMWeapon.Tooltip "$TT_HAMMER";
Inventory.Icon "graphics/HUD/Icons/W_ItamexHammer.png";
Weapon.SlotNumber 1;
Weapon.SlotPriority 3.;

View file

@ -12,6 +12,7 @@ Class HeavyMahSheenGun : SWWMWeapon
Tag "$T_SHEENHMG";
Inventory.PickupMessage "$I_SHEENHMG";
Obituary "$O_SHEENHMG";
SWWMWeapon.Tooltip "$TT_SHEENHMG";
Inventory.Icon "graphics/HUD/Icons/W_SheenHMG.png";
Weapon.SlotNumber 5;
Weapon.SlotPriority 2.;

View file

@ -18,6 +18,7 @@ Class GrandLance : SWWMWeapon
Tag "$T_GRANDLANCE";
Inventory.PickupMessage "$T_GRANDLANCE";
Obituary "$O_GRANDLANCE";
SWWMWeapon.Tooltip "$TT_GRANDLANCE";
Inventory.Icon "graphics/HUD/Icons/W_GrandLance.png";
Weapon.SlotNumber 0;
Weapon.SlotPriority 2.;

View file

@ -17,6 +17,7 @@ Class Quadravol : SWWMWeapon
Tag "$T_QUADRAVOL";
Inventory.PickupMessage "$I_QUADRAVOL";
Obituary "$O_QUADRAVOL";
SWWMWeapon.Tooltip "$TT_QUADRAVOL";
Inventory.Icon "graphics/HUD/Icons/W_Quadravol.png";
Weapon.SlotNumber 6;
Weapon.SlotPriority 2.;

View file

@ -16,6 +16,7 @@ Class PuntzerBeta : SWWMWeapon
Tag "$T_PUNTZERBETA";
Inventory.PickupMessage "$I_PUNTZERBETA";
Obituary "$O_PUNTZERBETA";
SWWMWeapon.Tooltip "$TT_PUNTZERBETA";
Inventory.Icon "graphics/HUD/Icons/W_PuntzerBeta.png";
Weapon.SlotNumber 3;
Weapon.SlotPriority 2.;

View file

@ -17,6 +17,7 @@ Class PuntzerGamma : SWWMWeapon
Tag "$T_PUNTZERGAMMA";
Inventory.PickupMessage "$I_PUNTZERGAMMA";
Obituary "$O_PUNTZERGAMMA";
SWWMWeapon.Tooltip "$TT_PUNTZERGAMMA";
Inventory.Icon "graphics/HUD/Icons/W_PuntzerGamma.png";
Weapon.SlotNumber 4;
Weapon.SlotPriority 2.;

View file

@ -18,6 +18,7 @@ Class RayKhom : SWWMWeapon
Tag "$T_RAYKHOM";
Inventory.PickupMessage "$T_RAYKHOM";
Obituary "$O_RAYKHOM";
SWWMWeapon.Tooltip "$TT_RAYKHOM";
Inventory.Icon "graphics/HUD/Icons/W_RayKhom.png";
Weapon.SlotNumber 9;
Weapon.SlotPriority 2.;

View file

@ -18,6 +18,7 @@ Class EMPCarbine : SWWMWeapon
Tag "$T_EMPCARBINE";
Inventory.PickupMessage "$I_EMPCARBINE";
Obituary "$O_EMPCARBINE";
SWWMWeapon.Tooltip "$TT_EMPCARBINE";
Inventory.Icon "graphics/HUD/Icons/W_EMPCarbine.png";
Weapon.SlotNumber 8;
Weapon.SlotPriority 2.;

View file

@ -17,6 +17,7 @@ Class ModernSparkster : SWWMWeapon
Tag "$T_NEWSPARKSTER";
Inventory.PickupMessage "$I_NEWSPARKSTER";
Obituary "$O_NEWSPARKSTER";
SWWMWeapon.Tooltip "$TT_NEWSPARKSTER";
Inventory.Icon "graphics/HUD/Icons/W_NewSparkster.png";
Weapon.SlotNumber 6;
Weapon.SlotPriority 3.;

View file

@ -12,6 +12,7 @@ Class FistGun : SWWMWeapon
Tag "$T_FISTGUN";
Inventory.PickupMessage "$T_FISTGUN";
Obituary "$O_FISTGUN";
SWWMWeapon.Tooltip "$TT_FISTGUN";
Inventory.Icon "graphics/HUD/Icons/W_FistGun.png";
Weapon.SlotNumber 1;
Weapon.SlotPriority 4.;

View file

@ -17,6 +17,7 @@ Class MisterRifle : SWWMWeapon
Tag "$T_MORTALRIFLE";
Inventory.PickupMessage "$T_MORTALRIFLE";
Obituary "$O_MORTALRIFLE";
SWWMWeapon.Tooltip "$TT_MORTALRIFLE";
Inventory.Icon "graphics/HUD/Icons/W_MortalRifle.png";
Weapon.SlotNumber 9;
Weapon.SlotPriority 3.;

View file

@ -17,6 +17,7 @@ Class RafanKos : SWWMWeapon
Tag "$T_RAFANKOS";
Inventory.PickupMessage "$T_RAFANKOS";
Obituary "$O_RAFANKOS";
SWWMWeapon.Tooltip "$TT_RAFANKOS";
Inventory.Icon "graphics/HUD/Icons/W_RafanKos.png";
Weapon.SlotNumber 0;
Weapon.SlotPriority 3.;

View file

@ -119,6 +119,18 @@ Class SWWMStatusBar : BaseStatusBar
override bool ProcessMidPrint( Font fnt, String msg, bool bold )
{
// hack lol
if ( msg.Left(15) ~== "swwmwpntooltip." )
{
String wname = msg.Mid(15);
Class<SWWMWeapon> w = wname;
if ( w )
{
let tt = new("SWWMWeaponTooltip").Init(w);
AttachMessage(tt,-2910);
}
return true;
}
SWWMDirectMessage m, m2;
// check for Korax lines, add them to chat (and reply to some of them)
bool koraxline = false;

View file

@ -245,6 +245,81 @@ Class SWWMSewerCount : HUDMessageBase
}
}
// weapon tooltips
Class SWWMWeaponTooltip : HUDMessageBase
{
TextureID icon;
String wpn, txt;
double tics, holdtics, fadeintics, fadeouttics;
transient Font tewifont, mplusfont, miniwifont, k6x8font;
transient BrokenLines l;
SWWMWeaponTooltip Init( Class<SWWMWeapon> weapon )
{
let def = GetDefaultByType(weapon);
icon = def.Icon;
wpn = def.GetTag();
txt = def.tooltip;
holdtics = 90;
fadeintics = 20;
fadeouttics = 30;
tics = -10;
return self;
}
override bool Tick()
{
return (++tics > holdtics+fadeintics+fadeouttics);
}
override void Draw( int bottom, int visibility )
{
if ( tics <= 0 ) return;
if ( !tewifont ) tewifont = Font.GetFont('TewiShaded');
if ( !mplusfont ) mplusfont = Font.GetFont('MPlusShaded');
if ( !miniwifont ) miniwifont = Font.GetFont('MiniwiShaded');
if ( !k6x8font ) k6x8font = Font.GetFont('k6x8Shaded');
let fnt = tewifont;
let fnt2 = miniwifont;
if ( language ~== "jp" )
{
fnt = mplusfont;
fnt2 = k6x8font;
}
Vector2 hs;
if ( swwm_hudscale <= 0 ) hs = StatusBar.GetHUDScale();
else hs.x = swwm_hudscale;
hs.y = hs.x;
Vector2 ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y);
double alpha = (tics<fadeintics)?(tics/fadeintics):(tics<(fadeintics+holdtics))?1.:(1.-(tics-(fadeintics+holdtics))/fadeouttics);
int w, h;
[w, h] = TexMan.GetSize(icon);
Vector2 pos = (int(ss.x/2),int(ss.y/2)+8+h);
Screen.DrawTexture(icon,false,pos.x,pos.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_CenterBottomOffset,true);
pos.y += 2;
w = fnt.StringWidth(wpn);
Screen.DrawText(fnt,Font.CR_FIRE,pos.x-w/2,pos.y,wpn,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha);
if ( !l ) l = fnt2.BreakLines(txt,600);
int w1 = w;
w = 0;
for ( int i=0; i<l.Count(); i++ )
{
let lw = fnt2.StringWidth(l.StringAt(i));
if ( lw > w ) w = lw;
}
// underline
int cw = int(ceil((max(w1,w)+8)/6.))*6;
for ( int i=0; i<cw; i+=6 )
Screen.DrawChar(fnt,Font.CR_FIRE,(pos.x-cw/2)+i,pos.y+6,0x5F,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha);
pos.y += fnt.GetHeight()+8;
for ( int i=0; i<l.Count(); i++ )
{
Screen.DrawText(fnt2,Font.CR_WHITE,pos.x-w/2,pos.y,l.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha);
pos.y += fnt2.GetHeight();
}
}
}
// Used sparingly for some events
Class SWWMDirectMessage : HUDMessageBase
{

View file

@ -36,6 +36,7 @@ Class SWWMStats : Thinker
Array<MonsterKill> mstats;
Array<LevelStat> lstats;
Array<Class<Weapon> > alreadygot;
Array<Class<SWWMWeapon> > sawtooltip;
int favweapon;
// these two are used for mission updates
Array<int> clustervisit;
@ -60,6 +61,19 @@ Class SWWMStats : Thinker
return false;
}
void SendTooltip( Class<SWWMWeapon> which )
{
if ( !swwm_weapontooltips ) return;
for ( int i=0; i<sawtooltip.Size(); i++ )
{
if ( sawtooltip[i] == which ) return;
}
sawtooltip.Push(which);
// this is kinda hacky but hey, as long as it works
if ( myplayer == players[consoleplayer] )
Console.MidPrint(null,"swwmwpntooltip."..which.GetClassName());
}
private Class<Weapon> WeaponFromInflictor( Actor inflictor, Name damagetype )
{
Class<Weapon> which = myplayer.ReadyWeapon?myplayer.ReadyWeapon.GetClass():null;

View file

@ -9,9 +9,10 @@ Class SWWMWeapon : Weapon abstract
transient bool hastravelled;
transient int autoupsnd;
private int SWeaponFlags;
String tooltip;
Class<Ammo> dropammotype;
Property Tooltip : tooltip;
Property DropAmmoType : dropammotype;
FlagDef NoFirstGive : SWeaponFlags, 0; // don't give ammo on first pickup (for weapons with a clip count)
@ -346,11 +347,17 @@ Class SWWMWeapon : Weapon abstract
override void Tick()
{
Super.Tick();
if ( Owner && autoupsnd && (level.maptime >= autoupsnd) )
if ( !Owner ) return;
if ( autoupsnd && (level.maptime >= autoupsnd) )
{
autoupsnd = 0;
PlayUpSound(Owner);
}
if ( !Owner.player || (Owner.player.ReadyWeapon != self) || !(Owner.player.WeaponState&WF_WEAPONSWITCHOK) || (Owner.player.WeaponState&WF_DISABLESWITCH) )
return;
let demo = Demolitionist(Owner);
if ( demo && demo.mystats && tooltip )
demo.mystats.SendTooltip(GetClass());
}
action void A_SWWMFlash( StateLabel flashlabel = null )
{

View file

@ -652,6 +652,7 @@ Class Hellblazer : SWWMWeapon
Tag "$T_HELLBLAZER";
Inventory.PickupMessage "$I_HELLBLAZER";
Obituary "$O_HELLBLAZER";
SWWMWeapon.Tooltip "$TT_HELLBLAZER";
Inventory.Icon "graphics/HUD/Icons/W_Hellblazer.png";
Weapon.SlotNumber 6;
Weapon.SelectionOrder 700;

View file

@ -852,6 +852,7 @@ Class Wallbuster : SWWMWeapon
Tag "$T_WALLBUSTER";
Inventory.PickupMessage "$I_WALLBUSTER";
Obituary "$O_WALLBUSTER_RED";
SWWMWeapon.Tooltip "$TT_WALLBUSTER";
Inventory.Icon "graphics/HUD/Icons/W_Wallbuster.png";
Weapon.SlotNumber 4;
Weapon.SelectionOrder 400;

View file

@ -285,6 +285,7 @@ Class Eviscerator : SWWMWeapon
Tag "$T_EVISCERATOR";
Inventory.PickupMessage "$I_EVISCERATOR";
Obituary "$O_EVISCERATOR";
SWWMWeapon.Tooltip "$TT_EVISCERATOR";
Inventory.Icon "graphics/HUD/Icons/W_Eviscerator.png";
Weapon.SlotNumber 5;
Weapon.UpSound "eviscerator/select";

View file

@ -237,6 +237,7 @@ Class Ynykron : SWWMWeapon
Tag "$T_YNYKRON";
Inventory.PickupMessage "$T_YNYKRON";
Obituary "$O_YNYKRON";
SWWMWeapon.Tooltip "$TT_YNYKRON";
Inventory.Icon "graphics/HUD/Icons/W_Ynykron.png";
Weapon.SlotNumber 0;
Weapon.SelectionOrder 9000;

View file

@ -326,6 +326,7 @@ Class DeepImpact : SWWMWeapon
Tag "$T_DEEPIMPACT";
Inventory.PickupMessage "$I_DEEPIMPACT";
Obituary "$O_DEEPIMPACT_WEAK";
SWWMWeapon.Tooltip "$TT_DEEPIMPACT";
Inventory.Icon "graphics/HUD/Icons/W_DeepImpact.png";
Weapon.UpSound "deepimpact/select";
Weapon.SlotNumber 1;

View file

@ -256,6 +256,7 @@ Class PusherWeapon : SWWMWeapon
Tag "$T_PUSHER";
Inventory.PickupMessage "$I_PUSHER";
Obituary "$O_PUSHER";
SWWMWeapon.Tooltip "$TT_PUSHER";
Inventory.Icon "graphics/HUD/Icons/W_Pusher.png";
Weapon.UpSound "pusher/select";
Weapon.SlotNumber 1;

View file

@ -886,6 +886,7 @@ Class Spreadgun : SWWMWeapon
Tag "$T_SPREADGUN";
Inventory.PickupMessage "$I_SPREADGUN";
Obituary "$O_SPREADGUN";
SWWMWeapon.Tooltip "$TT_SPREADGUN";
Inventory.Icon "graphics/HUD/Icons/W_Spreadgun.png";
Weapon.UpSound "spreadgun/select";
Weapon.SlotNumber 3;

View file

@ -254,6 +254,7 @@ Class Sparkster : SWWMWeapon
Tag "$T_SPARKSTER";
Inventory.PickupMessage "$I_SPARKSTER";
Obituary "$O_SPARKSTER";
SWWMWeapon.Tooltip "$TT_SPARKSTER";
Inventory.Icon "graphics/HUD/Icons/W_Sparkster.png";
Weapon.SlotNumber 7;
Weapon.UpSound "biospark/select";

View file

@ -328,6 +328,7 @@ Class ExplodiumGun : SWWMWeapon
Tag "$T_EXPLODIUM";
Inventory.PickupMessage "$T_EXPLODIUM";
Obituary "$O_EXPLODIUM";
SWWMWeapon.Tooltip "$TT_EXPLODIUM";
Inventory.Icon "graphics/HUD/Icons/W_ExplodiumGun.png";
Weapon.UpSound "explodium/select";
Weapon.SlotNumber 2;
@ -791,6 +792,7 @@ Class DualExplodiumGun : SWWMWeapon
{
Tag "$T_EXPLODIUM2";
Obituary "$O_EXPLODIUM";
SWWMWeapon.Tooltip "$TT_EXPLODIUM2";
Inventory.Icon "graphics/HUD/Icons/W_ExplodiumGun2.png";
Weapon.UpSound "explodium/select";
Weapon.SisterWeapon "ExplodiumGun";

View file

@ -339,6 +339,7 @@ Class CandyGun : SWWMWeapon
Tag "$T_CANDYGUN";
Inventory.PickupMessage "$I_CANDYGUN";
Obituary "$O_CANDYGUN";
SWWMWeapon.Tooltip "$TT_CANDYGUN";
Inventory.Icon "graphics/HUD/Icons/W_CandyGun.png";
Weapon.UpSound "explodium/select";
Weapon.SlotNumber 9;

View file

@ -937,6 +937,7 @@ Class SilverBullet : SWWMWeapon
Tag "$T_SILVERBULLET";
Inventory.PickupMessage "$T_SILVERBULLET";
Obituary "$O_SILVERBULLET";
SWWMWeapon.Tooltip "$TT_SILVERBULLET";
Inventory.Icon "graphics/HUD/Icons/W_SilverBullet.png";
Weapon.SlotNumber 8;
Weapon.SelectionOrder 800;