Commit graph

2768 commits

Author SHA1 Message Date
toasterbabe
2fd6a20be0 * Fix some HUD offsets.
* Don't attempt to respawn anybody when changing cv_coopstarposts and nobody CAN be respawned.
* Make Rings transparent (and not flash) when you're a spectator.
2017-07-03 16:33:52 +01:00
toasterbabe
50496970d1 Fix weird visual artifacting caused by restarting the level in co-op, which was a direct result of my code being messy. This is significantly better to deal with, anyways. 2017-07-03 15:43:29 +01:00
toasterbabe
ca76dd41f8 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/p_user.c
2017-07-03 15:41:00 +01:00
Monster Iestyn
298c1af045 Merge branch 'lua-archive-value-fix' into 'next'
Lua archive value fix

This fixes some potential problems with archiving mobjinfo_t/state_t data via Lua in netgames (whether as custom mobj/player vars or by NetVars hook). Thanks to LJSonic for pointing this out to me.

See merge request !200
2017-07-02 20:23:29 -04:00
Monster Iestyn
c751971d57 Fix integer type slipup in ArchiveValue for saving mobjinfo/state #s that LJSonic spotted
Apart from the fact that UnArchiveValue reads UINT16 for both anyway (which alone causes problems), but UINT8 isn't even enough to store the higher end of the object types list and definitely most of the states welp
2017-07-02 16:50:11 +01:00
toasterbabe
9797ae31a6 Fix the springs jumping!
The issue was that because both them and the player had MF_SOLID, the tmfloorz of the spring was getting set to above the player (or vicea versa with tmceilingz), forcing it upwards with them under certain circumstances.

Now, springs only acknowledge the solidity (for purpose of tmfloorz/tmceilingz) of objects they CAN'T launch.
2017-07-02 16:48:58 +01:00
Monster Iestyn
100422e1ce Merge branch 'master' into opengl-improvements 2017-07-02 16:42:40 +01:00
toasterbabe
370d9c3176 Hooh boy.
****
* MF2_MACEROTATE. Apply to any object. Replaces the indiscriminate spamming of A_MaceRotate each tic.
****
* Mace point mapthings have been slightly modified.
   - MTF_AMBUSH: bigger luke theory (has no effect on custom mace, different effect on spring mace)
   - MTF_OBJECTFLIP: flips the objects, but nothing else - just so it doesn't look out of place in gravflip sections
   - MTF_OBJECTSPECIAL: keeps it from attempting to play swinging sounds
   - angle: tag of controlling linedef
   - parameter: number of "spokes" minus one - for example, a parameter of 2 results in 3 equidistant maces rotating around the same point.
****
* Mace linedefs have been significantly revamped.
   - line dx: number of chain links
   - line dy: speed (in FU)
   - frontside floor height: Pitch (in degrees; how much it "tilts" over - Yaw influences the axis it's tilting on)
   - frontside ceiling height: Yaw (in degrees; rotation of entire thing on xy plane)
   - frontside x offset: Phase (in degrees; how far it is through the rotation cycle)
   - frontside y offset: Max speed (in FU; if less than speed, set to speed*2)
   - backside floor height: Pinch (in degrees; 0 if no backside; essentially makes rotation conical instead of wheel-like)
   - backside ceiling height: Roll (in degrees; 0 if no backside; rotates on the axis of the spinning - identical to Phase for spinning maces, but useful for rotating swinging maces as opposed to just offsetting them)
   - backside x offset: Number of "antispokes" (0 if no backside; makes that many spokes not exist so you can put another mace/chain type in there instead; for combo mace/chain instead turns them into chains directly)
   - backside y offset: Width (in number of extra chains per side; 0 if no backside; creates a "skiprope" arrangement)
   ----
   - ML_NOCLIMB: for chains and chain-mace combos, allow for player control of yaw through strafe keys
   - ML_EFFECT1: replacing the seperate mapthings, this makes a mace type swing instead of spin.
   - ML_EFFECT2: for all spokes of the mace wheel ending in maces, make the chains out of the mace type (inverted for firebars)
   - ML_EFFECT3: spawn a bonus mace type at the center(s) of rotation
   - ML_EFFECT4: don't clip inside ground
****
* Mapthing 1104 represents both spinning and swinging maces from prior versions of SRB2.
* Mapthing 1105 has gone from being a swinging mace variant to a combination of chains and maces in a single unit, provided the number of "spokes" is greater than one.
* Mapthing 1105 has gone from being a swinging chain variant to a vertical spring-on-a-ball-on-a-chain. Yellow by default, apply MTF_AMBUSH to turn into a red spring.
* Mapthing 1107 represents both spinning and swinging chains from prior versions of SRB2.
* Mapthing 1108 is completely untouched except to port over 2.1's functionality to the new backend.
* Mapthing 1109 is a Mario castle-level style firebar. This inverts the functionality of ML_EFFECT2 on the tagged linedef.
* Mapthing 1110 is a free slot should we want to implement another type of base-game mace.
* Mapthing 1111 is a custom mace. Use the linedef's frontside texture slots to identify a macetype mobjtype, then use the backside texture slots to identify a linktype mobjtype (defaults to MT_NULL if no backside).
****

Whooh. Requires new patch.dta for sprites.
2017-07-02 15:11:09 +01:00
Monster Iestyn
252cdb0c28 Merge branch 'private_flatsprite' into 'master'
OpenGL papersprites

I don't know if anyone actually tested Sryder's original OpenGL papersprites support before it was merged in, but there was some issues with the papersprites themselves "wobbling" about in a sort of weird way depending on the angle you view it from or where you are. It's easiest to see what I mean if you just load up sawb.wad, and strafe about when viewing one of the sawblades.

Thankfully all I really needed to do was tweak the way angles work for papersprites. I also cleaned up Sryder's original code a little, not that I really needed to do so though.

See merge request !96
2017-07-02 09:46:44 -04:00
Monster Iestyn
64b3861168 Merge branch 'mapthing-spawn-hook' into 'master'
"MapThingSpawn" hook for Lua

A hook for adding special stuff to mobjs spawned via a map thing on level load, like special features depending on the map thing's flags, angle, z position, extrainfo, or anything else I didn't think of.

**Function syntax:**
`functionname(mobj, mapthing)`

where `mobj` is the spawned mobj (type mobj_t obviously), and `mapthing` is its corresponding map thing (type mapthing_t also obviously). Note that `mapthing.mobj` will not yet be set to `mobj` at this point (it's set afterwards, provided you don't remove the mobj or something stupid).

Returning `true` overrides features in place for existing mobj types (currently not all existing features are overridden, I may change this; see the source code for what IS overridable for now), returning `false` runs them as normal.

**Hook syntax:**
`addHook("MapThingSpawn", functionname, MT_OBJECTTYPE)`

where `MT_OBJECTTYPE` is the object type to apply the hooked function for. As usual, if this argument is omitted or set to MT_NULL, the function runs for all object types.

**Test resources and where to find them:**

* srb2win-mapthingspawn.exe, my folder on the FTP - test exe, obviously
* luatest-mapthingspawn.lua, same place - a simple Lua script that changes the scale of MT_GFZFLOWER1 (the orange flower) based on the map thing's angle (0 degrees is normal, 90 degrees is 2x bigger, 180 is 3x bigger, 270 is 4x, etc etc)

See merge request !83
2017-07-02 09:46:11 -04:00
Monster Iestyn
68d8906a36 Merge branch 'mi-code-cleanup-once-again' into 'master'
MI code cleanup once again

Code prettification branch 12472849127, no real changes to gameplay except a bunch of outdated SOC features have been removed or disabled (most notably, Callum's old texture/patch SOC implementation). Though the changes here might also speed up game startup a teensy bit I suspect, possibly?

See merge request !102
2017-07-02 09:45:30 -04:00
toasterbabe
a0fa548e8b * Make spinning (normal) maces play the activesound once per rotation, instead of once every 64 tics.
* Make swinging (as opposed to spinning) maces play the activesound at the peak of their speed.
* Decouple the tilt of all maces from the angle.
* Improve DBG_GAMELOGIC message.
* Refactor.
2017-06-28 14:55:48 +01:00
toasterbabe
86f9b6d409 After discussions, flipping the flag that means you CAN'T turn the CEZ chains now means that when it's enabled, you CAN turn them. In order to get base game parity by default, rather than as an obscure option. 2017-06-27 23:34:55 +01:00
toasterbabe
23bdb14eda * Make maces use the x offset of their controlling linedef to set the stage in the cycle the mace should be at, instead of contributing to the tilt of the plane of the maces.
* Make the noclimb flag of the mace-controlling linedef turn the mace types that have spiked balls on the ends to also have the middles of the chain be spiked, CEZ3 style.
* Partake in some refactoring.

https://cdn.discordapp.com/attachments/293238104096112641/329335623250870275/srb20026.png An image of both changes in action!
2017-06-27 20:16:14 +01:00
toasterbabe
fe4dcee9ad fix inaccurate SC_FULLBRIGHT declarations 2017-06-26 16:30:23 +01:00
toasterbabe
b2fc2e03ba * Always remove linkdraw vissprites from unsorted drawing chain.
* Make the related I_Error more descriptive and "#define PARANOIA"'d only.
2017-06-26 16:11:50 +01:00
toasterbabe
dda9148e56 Fix issue with precipitation not modifying its mobj reference, resulting in Smiles' tails disappearing in CEZ3.
Also, as a result, safeguard some stuff against referencing stuff that's outside of *precipmobj_t's domain.
2017-06-26 15:53:20 +01:00
toasterbabe
59ea08ee11 * Change the order of operations such that linkdraw sprites aren't ever used for ordering comparisons with non-linkdraw sprites.
* Refactor of the unbundling to not involve modifying the next/prev links.
* Make the booleans in vissprite_t use flags stored in sprite->cut instead.
* Make the linkdrawn sprites much more linked - ie, same brightness (unless independently fullbright), same colormap, and don't draw if the tracer isn't being drawn.
* Other minor corrections.
2017-06-26 14:44:10 +01:00
Monster Iestyn
8080e1cd31 More optimising and otherwise fixing bizarre formatting in hw_trick.c 2017-06-26 11:12:26 +01:00
Monster Iestyn
6a85121b79 Moved my added slope checks in hw_trick.c to isCeilingFloating/isFloorFloating
I also optimised those two functions while I was there (why keep a "floating" variable when setting it to false guarantees the functions return false?)
2017-06-26 10:51:19 +01:00
toasterbabe
93dce12fce Seriously improves the reliability of the linkdraw system (in Software, the only rendering engine which actually does anything with this information), reducing the number of visual errors it produces significantly.
Of particular note: Standing in shallow pools of water as Smiles will now reliably associate the bottom half of the tails following mobj with the underwater portion of Smiles' body, and the flicking ends with his un-submerged head.

Deliberately engineered to only affect objects with MF2_LINKDRAW applied.
2017-06-25 20:46:30 +01:00
Monster Iestyn
c653289121 Turns out we don't need to use SDL_SetWindowTitle on its own, since SDL_CreateWindow already deals with the window title anyway. So I've disabled everything related to Impl_SetWindowName for now
Also what were you thinking Fury?!? window shouldn't be NULL for SDL_SetWindowTitle, you backwards person you
2017-06-25 20:22:01 +01:00
Monster Iestyn
0eaebb16fc Check if existing animdefs have the same type as the animdef we're parsing 2017-06-25 18:17:05 +01:00
Monster Iestyn
f44d769d39 dehacked.c cleanup
*removed Texture/Patch SOC implementations, since they weren't used in the end
*removed remnants of AnimTex and some Spritename thing
*none of the save* arrays in DEH_LoadDehackedFile were being used, so I removed all related code disabled or otherwise
*DEH_LoadDehackedFile doesn't need a "wad" param anymore since only the Patch block was using it
2017-06-24 20:33:56 +01:00
Monster Iestyn
7d82ac406e whoops forgot to change these two 2017-06-24 19:27:29 +01:00
Monster Iestyn
b2941087de Move all the leftovers of the "title" print code into D_Titlebar, since it's only used by DOS now 2017-06-24 18:39:17 +01:00
Monster Iestyn
9d24186ecd Removing D_SRB2Main's OS2 window title code
"pmData" was originally declared in the files in the (non-SDL) OS2 source subfolder, last known to be present in Demo 4.1's source code ...said folder has not been around for over a decade, so this would definitely fail to compile if you tried compiling for OS2 without SDL anyway
2017-06-24 18:27:43 +01:00
Monster Iestyn
d263c4fcd4 Remove unused static vars in d_main.c (and remnants of some of them) 2017-06-24 18:15:06 +01:00
Monster Iestyn
e5bf3dfa67 Merge branch 'master' into opengl-improvements
# Conflicts:
#	src/doomdef.h
2017-06-23 17:20:18 +01:00
Monster Iestyn
e3f627120f Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/p_mobj.c
2017-06-23 17:19:06 +01:00
Alam Ed Arias
1111282908 Merge branch 'master' into next 2017-06-22 19:52:42 -04:00
Monster Iestyn
b37d09df5f Merge branch 'opengl-slope-FOF-lighting-fix' into 'master'
OpenGL slope FOF lighting fix

This fixes some issues with sloped FOFs that affect lighting in OpenGL (as in, those that cast a shadow or have a colormap). Particularly, they can do strange things to any wall textures adjacent to them, as we've noticed ourselves in levels for 2.2. =P

See merge request !194
2017-06-22 19:49:42 -04:00
Monster Iestyn
44f33e6732 Merge branch 'touching_fixes' into 'next'
Fixes with respect to sector special touching and slopes

Some important stuff.

* SF_TRIGGERSPECIAL_TOUCH now actually works. Previously, it abandoned the loop early if ANY bounding sector didn't have that sector flag, which it likely didn't - only checking one extra sector's worth of FOFs. Also, the teleport handling there is more robust, and actually bails out if you teleport, instead of just awkwardly continuing through the loop.
* SF_TRIGGERSPECIAL_TOUCH now works for each time thinkers, too.
* Fixed a bug with being able to go under lava because P_CheckSolidLava doesn't take slopes into account.
* Also, P_CanRunOnWater supports slopes now too.
* Quicksand supports slopes and reverse gravity now.
* Space Countdown supports slopes now.

Also, an experiment behind a #define which currently isn't turned on:

* UNDER A #define, "SECTORSPECIALSAFTERTHINK", WHICH IS CURRENTLY TURNED OFF, BUT I WILL WANT TO TURN ON IN INTERNAL: Moved sector touch handling to P_PlayerAfterThinker (from P_PlayerThinker before movement). Allows for being able to trigger moving slope sectors that are going down, most specifically lava (didn't matter in RVZS in 2.1 because you could clip through the sides and go underneath the lava, causing damage - a sloped testwad version of that prevented going underneath.) Also fixes one-frame standing on deathpits before you die. Basically means sector triggers effectively happen one tic earlier, since it's after movement.

See merge request !131
2017-06-22 17:30:57 -04:00
Monster Iestyn
6a0329857d Merge branch 'polyobject-seg-render-fix' into 'master'
Polyobject seg render fix

This fixes both Software and OpenGL renderers so that polyobject segs aren't drawn if the game is drawing the actual subsectors they're from (outside the main level, where the polyobject walls were pre-spawn). They should only appear as part of the polyobject itself in-level.

This means a few glitches with polyobjects are probably fixed: for instance in Software mode, polyobject walls sometimes appear through level boundaries (and make everything above/below vanish, turning into HOM or skybox), if the BSP rendering code happens to find one of the subsectors said segs came from outside the level. I don't think anything similar happens in OpenGL, though I'm sure some unwanted typecasting is happening as a result of attempting to draw the segs. (And it fixes a crash in 2.2 anyway.)

See merge request !195
2017-06-22 17:29:01 -04:00
Monster Iestyn
abf92e965c Merge branch 'ping-fix' into 'next'
Ping-related code fix

Somehow, the part of the netcode for calculating the players' pings in a netgame frequently gets the concepts of nodes and players mixed up, which is probably not a good thing. This branch of course fixes those slipups.

I originally based this branch on master to be merged to it (since it only fixed issues on the host's side), but after finding another issue with clients receiving PT_PING from the server, I decided to make this a merge to next instead.

See merge request !193
2017-06-22 17:27:38 -04:00
Monster Iestyn
1efd2aa770 Merge branch 'ld414-invalid-sound-fix' into 'next'
Ld414 invalid sound fix

This fixes Linedef type 414 crashing the game if an invalid sound number was supplied to it (this can happen if you, say, scrambled THZ2's textures *cough*), whether or not the "Repeat Midtexture" flag is checked.

See merge request !196
2017-06-22 17:26:58 -04:00
Monster Iestyn
da2f5fe0a2 Fix PlayerSpawn hook not being called if the player is respawned at a starpost 2017-06-20 16:18:51 +01:00
Monster Iestyn
ba6d011d7b Scale should be fixed_t not UINT16!
This is probably a leftover from how scaling worked in v2.0 I take it
2017-06-17 17:22:45 +01:00
Monster Iestyn
318d5656b5 Keeping a total of thinkers saved/loaded and print the total in netplay devmode
Not a fix for anything, probably just useful for debugging
2017-06-12 17:55:15 +01:00
Monster Iestyn
02c098574c ah, turns out the TIC n debugfile print is a remnant of when Doom Legacy printed the consistancy return value... which we'll do here now too, in that case 2017-06-10 17:09:08 +01:00
Monster Iestyn
bae55a3af4 Don't display "x set to y" messages twice in the debugfile for consvars with CV_SHOWMODIFONETIME/CV_SHOWMODIF
(can't think offhand when those flags are actually used, but oh well)
2017-06-10 16:36:52 +01:00
Monster Iestyn
b9828f78e8 Fix stupid lack of newline with this message 2017-06-09 23:22:27 +01:00
Monster Iestyn
12266e0f85 Set ack and ackreturn to 0 for local packets always
This won't really have any in-game effect, this is just so the debugfile doesn't display the ack values of the PREVIOUS sent/got packet
2017-06-09 23:15:41 +01:00
Monster Iestyn
1119ffab0f Merge branch 'master' into next 2017-06-09 22:34:20 +01:00
Monster Iestyn
997eb58c93 Fix invalid sfx numbers supplied to linedef type 414 crashing the game
Had to make P_MobjReadyToTrigger non-inline for this fix though, because the compiler was being stupid
2017-06-07 18:24:06 +01:00
toasterbabe
faabca552f Okay, I guess this DID need to be done. (Something from the old nights fixes branch which I didn't port over initially.) 2017-06-04 00:48:32 +01:00
toasterbabe
1eaf35854d Fixed that issue with spectators not being able to go above FOFs. I guess it just wasn't getting initialised properly on first join! 2017-06-04 00:43:34 +01:00
toasterbabe
9d0212b9ec Console messages for the new cvars, ala other stuff in d_netcmd.c. 2017-06-03 22:43:35 +01:00
toasterbabe
5136bf4404 * Make shared lives counter greyed out if you can't respawn, to counteract the fact that it's lit up for lives in use.
* More splitscreen tweaks.
2017-06-03 22:27:40 +01:00
toasterbabe
a872f1c68f I'm starting to actually test this via netgame instead of just in splitscreen!
* Fixed oversight where late joiners may not actually get lives.
* Fixed oversight where zero-livers could spawn in.
* Reinstated flashing because a crawla walked onto one of the spawnpoints and we immediately got a game over.
* Rejiggered the overlay drawer so the printing was consistent between normal spectatorship and game overness.
2017-06-03 22:14:20 +01:00
Monster Iestyn
0dcc878028 gr_correcttricks fix: don't check if top/bottom textures are missing for sloped sectors, just ignore and cancel the hack
This fixes GFZ2's mysterious flying flats at the ramp to the big room
2017-06-03 21:40:41 +01:00
toasterbabe
8d8ae2b538 Renamed again, and this time I'm happy with it.
* "playstyle" to "coopstarposts"
* "lifedistribution" to "cooplives"
2017-06-03 17:55:03 +01:00
Monster Iestyn
c3c85bb4d2 Do not draw segs that belong to polyobjects, if you're drawing subsectors adjacent to them
Polyobject segs should ONLY be drawn if the polyobject itself is in the polylist of a subsector being rendered. That way you won't sometimes see polyobject walls through level boundaries, if you happen to be close enough to their pre-spawn locations outside the level (or in them, if you decided to go on a noclip journey).
2017-06-03 17:47:46 +01:00
Monster Iestyn
3658b22a7f wallVerts[].y is actually the map z coord, so use wallVerts[].z instead (which is actually the map y coord)
Don't worry I'm not going mad, this is actually how it's supposed to be
2017-06-03 14:46:03 +01:00
toasterbabe
ae3441659e Unrelated to the branch, but I was messing around with heights and shadow.wad and figured I might as well tweak it whilst I remember. 2017-06-03 13:47:08 +01:00
toasterbabe
f3cad19184 * Renamed "steallives" to "lifedistribution".
* Gave lifedistribution a "Sharing" option to go along with its previous individual and stealing options.
* Made the game over graphic and music only happen if everyone's out of lives if you're sharing or stealing lives.
* Fixed a bug where game over wouldn't come to fruition because it kept on happening each tic of the countdown2.
* Made spectator stuff display in Co-op splitscreen.
2017-06-03 12:26:42 +01:00
toasterbabe
25a1ffe02a Make it such that you only flash on game join in Co-op, not on all spawns. 2017-06-01 22:21:02 +01:00
toasterbabe
51f0d6f2e2 Import some NiGHTS stuff from some-more-nights-fixes, so I can delete that old branch. 2017-06-01 22:20:36 +01:00
Monster Iestyn
2e42c9621c Eck, potted another node/player confusion for clients reciving PT_PING 2017-06-01 20:46:44 +01:00
Monster Iestyn
fe15305df0 Merge the two NEWPING parts of NetUpdate into one block 2017-06-01 20:43:24 +01:00
Monster Iestyn
3d86e7135d Fix confusion between nodes and players in ping updating code and PT_PING packet sending code 2017-06-01 19:01:57 +01:00
toasterbabe
3857b720cd * Make music reset when game over is dealt with more consistent.
* Make setting steallives to true respawn every game overed spectator.
* Make a minimum on the number of lives GetLives can get you.
* Add "You'll steal a life on respawn" to spectator screen.
2017-06-01 18:44:19 +01:00
Monster Iestyn
10b835e799 Whoops, this broke my non-NEWCLIP test build 2017-05-31 17:17:08 +01:00
toasterbabe
464699fce2 * Make handling of life theft more consistent.
* Make sure that a life theft always takes you from 0 (or less) lives to 1 life.
* Fix a bracket level typo that meant new Co-op style respawning was being done for all gametypes.
2017-05-31 17:07:24 +01:00
Monster Iestyn
cefd92fc8e Merge branch 'master' into opengl-improvements 2017-05-31 15:18:42 +01:00
Monster Iestyn
3f9bebd05e Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/lua_thinkerlib.c
2017-05-31 15:18:05 +01:00
toasterbabe
4353fa65a2 * Spectatoring for game over supported.
* Don't lose lives when you die as a spectator.
2017-05-30 20:31:51 +01:00
toasterbabe
9fbcd6e883 Accidentially broke game overs. Fixed now. 2017-05-30 17:07:37 +01:00
Alam Ed Arias
6847a89bc2 OpenGL: check for 1.3+ or 2.0+, not just 1.3/2.X to 4.X 2017-05-29 23:04:03 -04:00
Alam Ed Arias
6be7693ecb OpenGL: Load the GLU and OpenGL 1.3 multitexturing functions during runtime 2017-05-29 22:52:51 -04:00
toasterbabe
947e9ed34f Stop rolling sound spam by not doing some stuff that probably shouldn't be happening. 2017-05-29 22:43:22 +01:00
toasterbabe
ff7ee4aa12 ...forgot to check in these changes 2017-05-29 22:19:31 +01:00
toasterbabe
2f3e4c3c65 * Per Mystic's request, made lives for 100 rings individual.
* P_GiveCoopLives bundles the coop lives reward for everyone versus reward for one person in other gametypes thing into one function. Available in Lua.
2017-05-29 22:18:02 +01:00
toasterbabe
fd873185ae * Respawn players that are spectators if it's not a special stage.
* No need to call a function for changing the number of lives when we're within bounds.
2017-05-29 21:59:24 +01:00
Monster Iestyn
f96844b262 Fix screenshots taken in OpenGL with 1366x768 being messed up
This is based on GZDoom's own fix for the same issue, had to add support for glPixelStorei first though
2017-05-29 21:28:36 +01:00
toasterbabe
da05371e69 woops 2017-05-29 21:24:09 +01:00
toasterbabe
726cd9757b Spectators in new Coop instead of staring at a dead screen all the time!
Needs a bunch of changes to HUD rendering, especially in splitscreen, which doesn't try to show spectator stuff whatsoever. Also, if you're the player whose respawn determines when the map reloads, you'll see the spectator text during the front half of the fade. Unless, of course, it's 2-player mode.
2017-05-29 21:23:00 +01:00
toasterbabe
964df31ee5 * Combine cv_sharedstarposts and cv_respawntype into cv_playstyle (Individual, Sharing, Together).
* Put steallives on menu.
2017-05-29 00:03:46 +01:00
toasterbabe
4239036cec Life theft! No menu item, but anything is possible with zombocom.
cv_steallives, defaults to "On"
2017-05-28 21:55:41 +01:00
toasterbabe
f9120e3a44 Some corrections. 2017-05-28 21:43:53 +01:00
Yukita Mayako
9f3fda37b0 Merge branch 'next' into hotfix_thinkers.iterate 2017-05-28 15:07:20 -05:00
toasterbabe
2765868940 * Add new cvars to menu.
* Don't try to respawn on a checkpoint if you don't have any lives.
2017-05-28 18:09:05 +01:00
toasterbabe
ce181da83c ...i am fool 2017-05-28 17:08:41 +01:00
toasterbabe
965e1f6b45 * Make 100 rings give everyone a oneup in New Coop.
* Make oneup boxes only give everyone a oneup in New Coop.
2017-05-28 17:07:20 +01:00
Alam Ed Arias
2223283208 Merge branch 'next' 2017-05-28 11:37:16 -04:00
toasterbabe
c508695c5a LF2_NORELOAD support 2017-05-28 16:05:55 +01:00
toasterbabe
3723eff9f7 The start of the Co-Op revamp! Not tested over netplay yet, but uses TD's implementation of various Co-op friendly things as a reference (or in one place an outright code steal, thanks Sryder!)
* cv_sharedstarposts - Makes everyone share starposts, defaults to "On"
* cv_respawntype - Defaults to "Starpost". If set to that, people respawn at the starpost you just hit (assuming cv_sharedstarposts is on - may have to combine the two variables later, but seperate for testing for now). The other option is the old, unrestricted spawning. We COULD add TD bubble spawning at a later time using this variable, though.

The level DOES reset if everyone dies, but not in a way which allows for Mystic Realm style non-resetting resets. I'll handle that later.
2017-05-28 15:33:35 +01:00
Monster Iestyn
0536e1d862 Merge branch 'update-to-v2.1.19' into 'master'
Update to v2.1.19

It should says what on the tin.

See merge request !190
2017-05-27 20:24:45 -04:00
Yukita Mayako
e192c5be4d Merge branch 'next' into hotfix_thinkers.iterate 2017-05-27 15:45:13 -05:00
Monster Iestyn
806b101984 Merge branch 'master' into next 2017-05-27 20:10:48 +01:00
Monster Iestyn
7294e15ec6 Merge branch 'ignore-askinfoviams' into 'master'
Ignore askinfoviams

Turns out PT_ASKINFOVIAMS is an obsolete packet type anyway, the MS doesn't send it at all. So let's just ignore it in the netcode then. (the online page just acts like a client and sends PT_ASKINFO, and is not part of the MS itself)

See merge request !191
2017-05-27 15:09:14 -04:00
Yukita Mayako
c44a935b04 Rewrote thinkers.iterate to handle invalid pointers elegantly. 2017-05-27 14:03:27 -05:00
toasterbabe
55b85e257e Per MI's disabling of PT_ASKINFOVIAMS, don't outright remove DELFILE, just mark it for replacement. 2017-05-27 20:02:49 +01:00
Monster Iestyn
d20efa5a74 Entirely ignore PT_ASKINFOVIAMS packets, since it turns out it's not even sent by the MS anyway 2017-05-27 19:06:46 +01:00
toasterbabe
2c7fb73432 Minor optimisation. (I'm picking at this branch! I should stop doing that and work on something else.) 2017-05-27 15:10:16 +01:00
toasterbabe
d685060aef Store importance (nmuslumps check) to prevent having to do it again when doing d_netfil stuff. 2017-05-27 14:01:26 +01:00
toasterbabe
33d5373e84 Don't need this addition any more. 2017-05-27 13:13:00 +01:00
toasterbabe
cbe56b1b06 Essentially - show how close the numwadfiles is getting to the maximum as WELL as the packetsizetally. 2017-05-27 12:36:33 +01:00
Alam Ed Arias
877e9510f7 Update version number to v2.1.19 2017-05-26 21:38:49 -04:00
Alam Ed Arias
86a76a9766 Makefile: disable GETTEXT by default 2017-05-26 18:10:53 -04:00
Alam Ed Arias
0e0769d11a Merge branch 'master' into disable_gettext 2017-05-26 18:06:57 -04:00
Monster Iestyn
11d57fba1b Merge branch 'master' into next 2017-05-26 23:02:06 +01:00
Monster Iestyn
3928b75b7a Merge branch 'netcode-hotfix' into 'master'
Netcode hotfix

Various netcode fixes are included in this branch. Most important of all of course is a fix for the Net_CloseConnection invalid node -32769 detected message thing, or rather what actually caused that to occur.

It's a merge to master since everything here should be compatible with 2.1.18: the only main changes are related to recieving packets (whether you're the host of a netgame or a client), which AFAIK shouldn't cause desyncs if you played with these fixes on a 2.1.18-hosted netgame (or hosted a netgame with the fixes and 2.1.18-using players join you).

See merge request !185
2017-05-26 18:00:43 -04:00
Monster Iestyn
0bb4e76e73 Merge branch 'too_many_wads_in_netgames' into 'next'
A bunch of bugfixes about too many wads in netgames

Fixes:
* Having bunch of music WADs added and then breaching the file limit(s) through joining a server with important files added. http://mb.srb2.org/showthread.php?t=42662
* Having a bunch of music WADs added, joining a server, and then breaching the file limit(s) when the server adds a file. https://mb.srb2.org/showthread.php?t=34664
* Informing the adminplayer whenever they try to send a request addfile net command but the file limit(s) are reached.

Done into next because I might as well be 100% safe, even though this could probably work on master as well.

See merge request !187
2017-05-26 17:58:53 -04:00
Monster Iestyn
1699d8a05f Merge branch 'missiles_n_slopes' into 'next'
Missiles 'n slopes

Fixed that thing where missiles like sliding up slopes for some reason.

This isn't a 1:1 fix compared to non-slopes - missiles still like stepping up over the borders of sloped sectors and will continue going as long as they never touch that ground again, whereas they can never step up on flat ones - but this fixes the most egregrious issue.

See merge request !181
2017-05-26 12:25:31 -04:00
toasterbabe
db2f8a50ba Make sure that the number of files you're trying to add is properly considered! 2017-05-26 16:16:10 +01:00
toasterbabe
d3bd17d862 Make the zeroed temperature gauge actually look right. 2017-05-26 16:04:10 +01:00
Monster Iestyn
4d1af86431 Cleanup part 2, make ye old 2.1.18 warning a debugfile only message, and make the node == -1 have its own debugfile only message too
Also get rid of a stray newline
2017-05-26 15:30:26 +01:00
Monster Iestyn
ab5835cd3b Remove cruft from my initial days of fumbling with this branch
textcmd[0] for PT_NODETIMEOUT can't hold anything < 0 anyway, and you'd probably have to really try to get >= MAXNETNODES
2017-05-26 15:26:00 +01:00
Monster Iestyn
e09270276e Display node's IP when printing the "sending file to node n" message, if noticedownload is turned on 2017-05-26 14:38:59 +01:00
Monster Iestyn
569af9f4c1 I am dumb, SV_AbortSendFiles already does what SV_RemoveFileSendList was made to do 2017-05-26 14:19:18 +01:00
Monster Iestyn
7979f84e25 whoops 2017-05-26 13:58:34 +01:00
Monster Iestyn
aecc97ded3 PT_REQUESTFILE checking:
* if you sent it to a client rather than the server, game over, your connection is closed
* if files that don't exist or are too large are requested are listed, game over, your connection is closed (they should have been checked on YOUR side beforehand, silly)
* if the server has downloading disabled anyway, ...yeah, you get the idea

Don't worry, I made sure Got_RequestFilePak cleaned up the full file request list for the node in case of failure
2017-05-26 13:39:54 +01:00
Monster Iestyn
437780d503 Add missing break for MT_EGGCAPSULE's switch case in P_SpawnMobj (sorry!) 2017-05-25 18:40:48 +01:00
Monster Iestyn
a23e9bc32b Fix size_t printing 2017-05-25 18:10:20 +01:00
toasterbabe
fe9ebbd1ca Files which are unimportant are not sent in the fileneeded list.
This removes exactly one feature in exchange for a greater number of files to be loaded. I asked around, and people don't actually like what it currently does (load unimportant server-side files if you can findfile it locally), so.

Can be reverted if requested.
2017-05-25 17:58:32 +01:00
Monster Iestyn
58236af6f7 Tweak to D_MapChange: if you failed to start a server, DON'T send a map change command 2017-05-25 16:55:59 +01:00
toasterbabe
47e171250f * Prevent joining a server if you have too many files loaded to add the remainder.
* Made the check in Got_RequestAddfilecmd more comprehensive, since I might as well. Just something to tweak a little later in internal.
2017-05-25 16:06:39 +01:00
toasterbabe
5c302d7ffc Partial implementation of fix for Got_RequestAddfilecmd (the other half - the limitation on the size of the filesneeded section of the serverinfo packet - will be applied in internal.) 2017-05-25 15:34:21 +01:00
toasterbabe
2aa1215716 Fix a thing where the host adds a WAD and you have too many WADs loaded to add it. 2017-05-25 15:22:32 +01:00
toasterbabe
9fcf40b5a3 woops 2017-05-24 22:36:59 +01:00
toasterbabe
e2f6366292 Minimum fill for temperature gauge if you have any wads loaded at all. 2017-05-24 22:05:41 +01:00
toasterbabe
c2705b4662 * Make wads that don't modify the game not count towards the internal packet size tally in w_wad.c, like they wouldn't in d_netfil.c.
* Now that it's consistent, removed the redundant packet size tally check in d_netfil.c.
2017-05-24 21:45:03 +01:00
toasterbabe
74c4ad4bad Minor refactor, plus cutting out a potential bug of setting dir_on[] to -1. 2017-05-24 20:55:35 +01:00
toasterbabe
e41976fb05 https://cdn.discordapp.com/attachments/293238104096112641/317023848493088779/srb20016.png
* Visual Indicator of modifiedgame/savemoddata.
* Other assorted improvements to layout.
2017-05-24 20:55:05 +01:00
Monster Iestyn
c92aaa74a4 I think PT_CLIENT2MIS was meant to do this too, probably 2017-05-23 18:46:34 +01:00
Monster Iestyn
7147e0fcaf Improve previous PT_TEXTCMD/PT_TEXTCMD2 check, add another one to ignore zero size textcmds! 2017-05-23 17:35:32 +01:00
Monster Iestyn
0b0b738a6f Don't allow non-servers to receive PT_RESYNCHGET 2017-05-23 16:34:56 +01:00
Monster Iestyn
ff1cc07a1d Implemented toaster's suggestion to make a macro here 2017-05-23 16:29:09 +01:00
Monster Iestyn
9e3bdc5ee2 Prevent bad PT_TEXTCMD/PT_TEXTCMD2 textcmd[0] sizes? 2017-05-23 16:13:42 +01:00
Monster Iestyn
fdfd6e1c0b Whoops don't do that for PT_REQUESTFILE 2017-05-22 22:20:08 +01:00
Monster Iestyn
c70839334e Added a bunch of missing checks to prevent non-server players from sending other non-server players stuff 2017-05-22 22:17:51 +01:00
Monster Iestyn
3784d765e4 Remove extra whitespace I added 2017-05-22 20:47:38 +01:00
Monster Iestyn
28444c12dd Some more things I overlooked in this fix 2017-05-22 16:54:39 +01:00
Monster Iestyn
247ed56e17 Don't allow nonsense PT_ASKINFOVIAMS packets, nor any at all if offline 2017-05-22 16:44:50 +01:00
Monster Iestyn
6062223eb5 Merge branch 'master' into next 2017-05-22 13:23:46 +01:00
Monster Iestyn
5aeb4b5919 Revert "Loop through rebound packets until you found a good one or ran out of them"
On second thought, this was probably unnecessary anyway.

This reverts commit 1078a642df.
2017-05-20 21:29:05 +01:00
Monster Iestyn
284e539c66 Don't bail out in Y_StartIntermission in dedicated mode, this causes the game not to add on score bonuses for players from the server's view of things! 2017-05-19 16:31:23 +01:00
Monster Iestyn
1078a642df Loop through rebound packets until you found a good one or ran out of them 2017-05-19 11:52:50 +01:00
Monster Iestyn
5a1fc6098e Attempts to prevent stupid stuff from happening 2017-05-19 11:25:28 +01:00
Monster Iestyn
229e75ab8b Removed all code in Y_FollowIntermission that's already handled in G_AfterIntermission
Only real difference here is that CEcho messages will always be cleared when going to credits/evaluation, but that's hardly a loss tbh.
2017-05-18 17:23:19 +01:00
Monster Iestyn
d2313ea32b G_ExitLevel tweak: Use HU_ClearCEcho() instead of HU_DoCEcho(""), the latter causes an empty line to appear in log.txt 2017-05-18 17:10:44 +01:00
Monster Iestyn
bc79365cf4 Moved Y_EndGame from y_inter.c/h to g_game.c/h, renamed it to G_EndGame 2017-05-18 16:54:58 +01:00
Monster Iestyn
21d29c8550 Merge branch 'public_next' 2017-05-17 16:19:01 +01:00
Monster Iestyn
1781ccf4ca Merge branch 'master' into next 2017-05-17 16:16:50 +01:00
toasterbabe
593416328a String addition to the addfile menu suggesting to visit the modifications page! No change to actual functionality, just secondary utility. 2017-05-16 23:43:21 +01:00
Monster Iestyn
551ed797db Merge branch 'jumping_fixes' into 'master'
Nojumpspin fix

MI can attest to this being a problem that's now solved.

To test, check out root/!LatestSRB2Files/srb2win_branch_jumpfixes.exe and root/MonsterIestyn/robohood.wad.

See merge request !95
2017-05-16 17:02:20 -04:00
toasterbabe
5f8cfb47e4 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu 2017-05-16 19:54:54 +01:00
toasterbabe
87f32abc24 i have no idea whether this will fix the garbage or whether it'll get broken again, but here's an attempted fix for VAda's name 2017-05-16 14:11:10 +01:00
Monster Iestyn
17a06dd6c4 I_GetConsoleEvents: Split KEY_EVENT code into a function of its own, like with I_GetEvent's event types
One benefit of this is that event_t data need only be created if KEY_EVENT is found, since the other event types never do anything anyway
2017-05-15 18:39:59 +01:00
Monster Iestyn
87085f2475 SDLSetMode: merge wasfullscreen/windowed mode code into one block 2017-05-15 16:35:32 +01:00
Monster Iestyn
a340f2c8ed Impl_CreateWindow: re-use "flags" for SDL_RENDERER_* flags, remove unnecessary curly braces 2017-05-15 16:19:28 +01:00
Monster Iestyn
4979ab6b8e Not really important or anything, but checking render_soft == rendermode rather than rendermode == render_soft always bugged me. And it's not consistent with the rest of the source code (or at least most of it) anyway. 2017-05-15 15:43:31 +01:00
Monster Iestyn
d1bbd1261e VID_SetMode: SDLSetMode should use vid.width/vid.height, not windowedModes[modeNum].
If modenum was < 0 or >= MAXWINMODES, that would make windowedModes[modeNum] be out of bounds and possibly crash the game.
2017-05-15 15:36:51 +01:00
Monster Iestyn
093800cb06 I_FinishUpdate: OglSdlFinishUpdate should never run for render_soft, even if screens[0] somehow is NULL 2017-05-15 15:24:40 +01:00
Monster Iestyn
f8482421e5 Don't need to use WADFILENUM/LUMPNUM in this function, since W_CheckNumForNamePwad returns just the lump number, not a combined WAD + lump number frankenstein's monster
This is just in case someone actually tries to dump in C_START/C_END and "add" colormaps using them, not that they would ever be used currently anyway.
2017-05-15 14:38:55 +01:00
Monster Iestyn
222807c6f6 Fix R_InitExtraColormaps reporting 6 or more colormaps every time you loaded the game, even though we haven't used C_START/C_END in more than a decade now
Note to self: W_ functions are awfully confusing with returning with LUMPERROR or INT16_MAX. Should sort out what's going on there if necessary
2017-05-15 14:29:31 +01:00
toasterbabe
65a202e843 ACTUALLY let's do this better 2017-05-14 19:25:46 +01:00
toasterbabe
b13a9ad9d1 Support for negative scroll speeds on title screen 2017-05-14 19:20:00 +01:00
toasterbabe
b864e45487 Added reset for titlemap (and other title attribute) changes so that the title screen never ends up being some half-formed hybrid
Also because I could I added it for intro changes too
2017-05-14 16:45:08 +01:00
toasterbabe
bdcd9125d2 Fixed that thing where missiles like sliding up slopes for some reason.
This isn't a 1:1 fix for non-slopes - they still like stepping up over the borders of sloped sectors - but this fixes the most egregrious issue.
2017-05-14 14:47:09 +01:00
toasterbabe
ba4275c415 title screen hud hook 2017-05-13 22:38:06 +01:00
Monster Iestyn
d91471b053 check spr2names not sprnames, whoops 2017-05-13 21:43:04 +01:00
Monster Iestyn
c2f03c5953 Fix compiler errors 2017-05-13 21:28:44 +01:00
Monster Iestyn
5113163e07 Merge branch 'master' into lua-spritedefs 2017-05-13 21:16:42 +01:00
Monster Iestyn
9a9b2fcc2d Merge branch 'master' into mapthing-spawn-hook 2017-05-13 21:06:49 +01:00
Monster Iestyn
8d483cdc47 Fix whitespace on that one line toaster pointed out 2017-05-13 20:51:10 +01:00
Monster Iestyn
e45e740a65 Merge branch 'master' into lua-lump-load-only 2017-05-13 20:40:38 +01:00
Monster Iestyn
ed81c9abcb Fix paper sprites apparently "turning" around sometimes when you turn the camera, when they're supposed to be still (sawb.wad for instance)
I cleaned up some of Sryder's changes a little too I guess
2017-05-13 12:49:30 +01:00
yellowtd
f5fa67b7ad no idea why this was stashed while the last commit before this one was made.. 2017-05-12 20:54:06 -04:00
yellowtd
13c748531f bootmap
(+indentation fix)
2017-05-12 20:48:20 -04:00
Sryder
32c4ddca5c Remove accidental leftovers
Accidentally left a comment and stuff in there from previous attempts

# Conflicts:
#	src/hardware/hw_main.c
2017-05-12 23:39:55 +01:00
Sryder
ec0f30f849 Fix a one character bug with clipping 2017-05-12 23:39:01 +01:00
Sryder
3f0f645c70 Flat sprites for OGL
# Conflicts:
#	src/hardware/hw_main.c
2017-05-12 23:38:44 +01:00
Monster Iestyn
635789c1ec Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
2017-05-12 23:03:38 +01:00
Monster Iestyn
b8ffeeb59f Update version number to v2.1.18
Don't worry, I remembered to update MODVERSION as well this time :)
2017-05-12 16:06:27 +01:00
Monster Iestyn
f0de3a407d Merge branch 'public_next' 2017-05-11 22:58:03 +01:00
toasterbabe
6eaf936889 Make symbol conversion a #define instead of copypasted code. 2017-05-11 22:09:01 +01:00
toasterbabe
9445455fb1 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into skin_patch 2017-05-11 22:02:12 +01:00
Monster Iestyn
55fd0aba91 Merge branch 'master' into next 2017-05-11 20:47:12 +01:00
Monster Iestyn
96c63bf95b Whoops forgot this bit too 2017-05-09 20:17:46 +01:00
Monster Iestyn
8582406dd2 prevent invalid nodes from crashing Net_CloseConnection, print a warning and return instead 2017-05-09 15:13:19 -04:00
toasterbabe
3e7377930f FIX FOR MI'S CRASH 2017-05-09 17:38:00 +01:00
toasterbabe
3e9cc51953 Change config recognition method 2017-05-09 17:09:40 +01:00
toasterbabe
fd81a82cca Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu 2017-05-09 16:45:58 +01:00
toasterbabe
28752afa6a Fix inconsistencies in spacing in m_cond.h 2017-05-09 16:28:20 +01:00
toasterbabe
61fcbe9b36 Implemented the two NiGHTS Emblem types in the TUDD via var modifications to ET_GLOBAL!
* GE_NIGHTSPULL (for it to chase you once paralooped) - Sun emblem
* GE_NIGHTSITEM (for hidden until paralooped) - Moon emblem

Combined means that you essentially have to loop it twice.

Also, revamped NIGHTSITEM to suck a little less (and have more compatibility with MT_EMBLEM).
2017-05-09 16:20:26 +01:00
toasterbabe
cd512d014a <Alam_Squeeze> s_sound.c: In function `S_StartCaption':
<Alam_Squeeze> s_sound.c:409: warning: 'same' might be used uninitialized in this functio
2017-05-09 14:42:23 +01:00
toasterbabe
e69b08178f <Alam_Squeeze> p_floor.c: In function `EV_CrumbleChain':
<Alam_Squeeze> p_floor.c:2932: warning: 'widthfactor' might be used uninitialized in this function
<Alam_Squeeze> p_floor.c:2932: warning: 'heightfactor' might be used uninitialized in this function
2017-05-09 14:42:06 +01:00
toasterbabe
cb9012c2ca Accidentially removed newline 2017-05-09 14:22:53 +01:00
toasterbabe
a4b74e7d3f <Alam_Squeeze> m_menu.c:1907: error: `M_DrawScreenshotMenu' undeclared here (not in a function)
<Alam_Squeeze> m_menu.c:1907: error: initializer element is not constant
<Alam_Squeeze> m_menu.c:1907: error: (near initialization for `OP_ScreenshotOptionsDef.drawroutine')
<Alam_Squeeze> m_menu.c:9353: warning: 'M_DrawScreenshotMenu' defined but not used
<Alam_Squeeze> Makefile:770: recipe for target '../objs/Mingw/Debug/m_menu.o' failed
<Alam_Squeeze> make: *** [../objs/Mingw/Debug/m_menu.o] Error 1
2017-05-09 14:19:54 +01:00
toasterbabe
378b913e66 <Alam_Squeeze> lua_blockmaplib.c:269:7: no newline at end of file
<Alam_Squeeze> Makefile:770: recipe for target '../objs/Mingw/Debug/lua_blockmaplib.o' failed
<Alam_Squeeze> make: *** [../objs/Mingw/Debug/lua_blockmaplib.o] Error 1
2017-05-09 14:18:45 +01:00
toasterbabe
0cc838bca7 <Alam_Squeeze> make: *** [../objs/Mingw/Debug/m_menu.o] Error 1
<Alam_Squeeze> s_sound.c: In function `S_StartCaption':
<Alam_Squeeze> s_sound.c:416: warning: comparison of unsigned expression >= 0 is always true
<Alam_Squeeze> Makefile:770: recipe for target '../objs/Mingw/Debug/s_sound.o' failed
<Alam_Squeeze> make: *** [../objs/Mingw/Debug/s_sound.o] Error 1
2017-05-09 14:17:34 +01:00
toasterbabe
ba41d46587 Thanks Alam for letting me know I was messing up!
* Search case is now handled via cvar instead of assumed based on system.
* filemenusearch (previously strsystemstr) uses static char[] to prevent stack suffering.
* New cvar for searching from start of string instead of anywhere in it!
* Menu tweaked for the above.
* Reverted slash from pathsep.
2017-05-09 14:09:09 +01:00
toasterbabe
2696ed52fd Fixed the thing where Robo Hood's jump was messed up.
Also, ditto re Super Sonic's floaties.
2017-05-09 12:50:28 +01:00
toasterbabe
7f83e0d134 * Prevent crash if you go to a map and it doesn't exist.
* Handle music fix in smarter way.
* Enums!
2017-05-09 11:09:58 +01:00
toasterbabe
3a4e091ba6 * Fix titlemap music change bug reported by Larztard
* Clean up titlemapinaction so that it isn't true when you're playing
* Don't print "SPEEDING OFF TO [ZONE] [ACT 1]..." on screen if it's a titlemap - keep a nice and pretty black screen
2017-05-09 00:48:07 +01:00
toasterbabe
dd57e47574 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into titlemap
# Conflicts:
#	src/r_main.c
2017-05-08 23:58:44 +01:00
toasterbabe
f87c7f428d Compiling fixes 2017-05-08 23:51:12 +01:00
toasterbabe
72baa4e2d0 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu 2017-05-08 23:43:21 +01:00
toasterbabe
90d21f5c39 woops broke little green loaded icon for all, fixed 2017-05-08 23:08:40 +01:00
toasterbabe
013da12088 Minor tweak - this probably makes more sense to the casual player, and doesn't obscure anything to people who would otherwise know what checksum means. 2017-05-08 22:57:14 +01:00
toasterbabe
b5b5b983a5 re-order mpause menu addons to be at top 2017-05-08 21:43:56 +01:00
toasterbabe
54ac157c6c Disable log.txt, errorlog.txt, and config.cfg from being "loadable" (exec-runnable) from the addfile menu. 2017-05-08 21:04:26 +01:00
Monster Iestyn
9238b2d50f Merge branch 'level-specials-setup-stuff' into 'master'
Level specials setup stuff

Some changes to level setup, largely inconsequential for gameplay but maybe helpful for Lua scripting:

* gravity, weather, and some other internal variables are set to their defaults before loading things, so their values from a previous level don't affect mobj spawning potentially
* Tag lists are also initialised before loading things, so that tag-based search functions (such as P_FindSpecialLineFromTag) can be used internally for the maces and particle generator. This should probably extend to Lua as well
* the level header "forcecharacter" no longer recognises "255" as "None" anymore. This is because it no longer takes skin numbers (as of whenever that change was added... version 2.0?), and level headers are auto-cleared when edited anyway.

See merge request !88
2017-05-08 15:15:50 -04:00
toasterbabe
06721bd041 kill/resurrect secrets if to be changed 2017-05-08 18:42:24 +01:00
toasterbabe
1fc835e4a3 Made the refreshdirmenu stuff SLIGHTLY less hacky. 2017-05-08 17:28:48 +01:00
Monster Iestyn
41130465b4 Use NF instead of normal P_SetMobjState to prevent endless looping 2017-05-07 22:21:17 +01:00
toasterbabe
4c495cafc9 thanks mi for my life 2017-05-07 20:59:20 +01:00
toasterbabe
59dfba967f Change from "on/off" to "yes/no" - makes more sense here 2017-05-07 20:50:48 +01:00
toasterbabe
4e0d015803 Good:
* Improved layout of addons menu.
* Disabled input for 5 tics after a console-touching enter key command on the menu, so that weird stuff doesn't happen.
* Added Add-on options.
* cv_addons_option - chooses save location. A little smaller in scope than the weird Default/HOME/SRB2/Custom thing for screenshots - now it's SRB2 Folder and Custom.
* cv_addons_folder - goes with Custom for above.
* cv_addons_md5 - chooses whether to identify files on the addons menu with name comparison only, or with checksum comparison as well (more intensive hence not default).
* cv_addons_showall - chooses whether to show just supported file extensions, or all
* Some minor other refactors.

Bad:
* Screenshot options menu crashes on access for some reason (to do with itemOn not being valid?????) looking into
2017-05-07 17:14:57 +01:00
toasterbabe
f3b054fc8f Consistency with deeznux. 2017-05-06 23:44:21 +01:00
toasterbabe
a4fc3372ca Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu
# Conflicts:
#	src/m_menu.c
2017-05-06 23:24:21 +01:00
toasterbabe
a59dc43cfd Appropriate rename. (I would have done more in this commit, but I need to merge deez nux.) 2017-05-06 22:56:13 +01:00
Monster Iestyn
a2915bbb5d Merge branch 'Deez_NewUserXperiences' into 'master'
New User Experiences - Menus, Closed Captioning, and other non-substantial tweaks

Hello! I'm going to words.

* Menu stuff!
    * Scrolling menus when there's lots of options instead of doing lots of nestling!
    * Video Options, Server Options, and Screenshot Options have been updated to take advantage of this.
    * Headings are prettier in general to match the level platter's headers!
    * Expose a bunch of stuff Mystic wanted exposed, without iundating the player!
    * Little arrows!
* Better, clearer control menus!
    * I know this is probably related to the above, but whatever.
    * Very organised with lots of renaming and magical clarifying context headings!
    * Killed the analog-only Camera L/R keys in favour of merging them with the regular turn keys in that context!
    * Also little arrows!
* Statistics!
    * One page instead of two, loses a lot less info than you'd expect!
    * The benefit of having them on one page is greater than the loss of being able to individually discern which of your Score/Time/Rings is incomplete.
    * ALSO also little arrows!
* Secrets checklist!
    * Scrolls vertically!
    * Allows for autogeneration of conditions based off conditionset, which allows for names of required levels to be hidden if you haven't played them yet!
    * Still allows overriding condition string per traditional checklist.
    * This allows us to show every secret's condition without letting it be spoiled or overflowing the everything.
    * Also ALSO also little arrows!
* Closed captioning!
    * Console command "closedcaptioning on/off".
    * Shows stuff in the bottom right hand corner of the screen.
    * sfxinfo[sfx_name].caption = "Butt.".
    * S_StartMusicCaption(string, tics, optional player) allows for a caption to play without being anchored to a specific sound.
* Color Profile!
    * Using only the best in advanced cube-based majyks.
    * cv_gamma now goes from -15 to +5!
    * cv_saturation - from 0 to 10!
    * A new menu for modifying the hue, saturation and gamma of specific corners of the cube (RYGCBM) independently of the master options!
    * Screenshots/Video Mode now supports turning on/off circumstantial color profile alterations (cv_screenshot_colorprofile).
* Spring cleaning!
    * cv_allcaps is dead.
    * Sudden death and old match scoring (25 points for shield damage as the only change??) is dead
    * A few things are taken off the menu because they're not that relevant to have.
    * cv_competitionboxes now applies to race as well.
    * Failed teleports go nuh-uh.
    * Question mark boxes don't have doomednums anymore, so they can't be placed in singleplayer and used to get free lives by playing with the tv_extralife etc stuff.
* Other tidbits!
    * HUD offsets are tweaked to give one digit less space to score and one digit more space each to time and rings to match up the right edges.
    * Emerald tokens show up on the level complete screen and are loaded into a coin slot at the end of the tally.
    * Speaking of Emerald tokens, they now give score all the time, and continues instead of 50 rings when you have all Emeralds.
    * Moved Race HUD down, and made it go bing bing bing BONG.
    * V_DrawCroppedPatch now properly handles topdeltas.
    * Minor tweak to GFZ3 eggmobile's pinch to be more lenient.
    * Hudnames for skins now replace full stops with katakana dots. We could make it replace a different character instead if we really wanted to, but I figure this matches what is desired.

Check out ```<root>/!LatestSRB2Files/srb2win_branch_deeznux.exe``` to try it out.

See merge request !91
2017-05-06 17:53:41 -04:00
toasterbabe
bf740f60cc Whitelist menu stuff so VAda can have his XP themed icon set without setting ismodified. ;P 2017-05-06 20:22:47 +01:00
toasterbabe
da239d36e8 background https://cdn.discordapp.com/attachments/293238104096112641/310476917218344970/srb20012.png 2017-05-06 19:14:50 +01:00
toasterbabe
de46e72545 * "Type to search..." prompt.
* Menu shuffling for addons. Shows up on main menu and MP pause menu if you're host/admin (not encouraged in SP).
* The menu yells at you in red text if you're playing, warning of issues.
2017-05-06 14:59:54 +01:00
toasterbabe
b1785e1f97 Improved conditions for case insensitive filesystem support. 2017-05-06 14:23:51 +01:00
toasterbabe
afe24bd4f0 Get rid of stack overflow code because filesystem case insensitivity is Windows exlcusive, so we can just create a wrapper function for there instead of rolling our own. 2017-05-06 13:37:10 +01:00
toasterbabe
b2cbbb63c6 Prevent holding down one of the string change keys being free lag generation. 2017-05-05 22:22:49 +01:00
toasterbabe
50db610fc8 Fixed bug for single folder search results. 2017-05-05 22:18:48 +01:00
toasterbabe
03eb1a5d56 * Make no results instead of generic search search message. https://cdn.discordapp.com/attachments/293238104096112641/310153659356938241/srb20007.png
* Page up and page down now work!
2017-05-05 22:15:16 +01:00
toasterbabe
0081fa839d Search box is now standardised in style, and the menu is jiggered around a little bit for cleanness! https://cdn.discordapp.com/attachments/293238104096112641/310143962440794114/srb20006.png 2017-05-05 21:02:37 +01:00
toasterbabe
308503d5b8 Little polish things I forgot to tweak. 2017-05-05 16:53:17 +01:00
toasterbabe
8f2490d588 Search!
https://gfycat.com/DizzyEnergeticCygnet

I will make it prettier.

(Also: stristr. Since the Windows (and others?) standard library doesn't have it for some reason, I modified code someone put on StackExchange as a stopgap; once I'm ready to get on IRC for the day, we'll discuss attribution/rewriting.)
2017-05-05 16:29:46 +01:00
toasterbabe
ba04e982b2 Make the temperature gauge for added WADs start at zero, not however much the mainwads provided.
Also, mainwads now accounts for music_new, and that's added via DEVELOP instead of something we might forget to remove later.
2017-05-05 14:43:39 +01:00
toasterbabe
c7c88b7d99 Change sounds and start element for folder navigation. 2017-05-04 22:52:49 +01:00
toasterbabe
e2ca5b53a1 Bonk. Thanks be to MI.
https://cdn.discordapp.com/attachments/293238104096112641/309777511871545354/srb20006.png
2017-05-04 20:50:21 +01:00
toasterbabe
0c565dc2f8 Pretty! https://cdn.discordapp.com/attachments/293238104096112641/309741256618147841/srb20005.png
Will upload patch.dta when I can.
2017-05-04 18:57:36 +01:00
toasterbabe
09b659c67a Fix cross-platform preparefilemenu's function signatures, and rename the one input it takes over-all to make more sense. 2017-05-04 16:22:58 +01:00
toasterbabe
ca038e8fb6 Split non-drawing functionality outside of M_DrawAddons.
Also, make the bar full if you've somehow managed to hit MAX_WADFILES, so you're not susprised.
2017-05-04 16:22:02 +01:00
toasterbabe
55fe0592cd Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into addfile_menu 2017-05-04 11:54:54 +01:00
toasterbabe
3521fbae4e Improved the temperature gauge for how close you are to hitting the wadlimit.
* It now has a more natural colour graduation. https://cdn.discordapp.com/attachments/272849790285512717/309624385730379777/srb20009.png
* It now considers the amount of space adding a file with a very short name would take up, and subtracts that from the total span to get a hopefully more accurate reading.
2017-05-04 10:48:53 +01:00
toasterbabe
055b59f6fb Did some research, discovered implementing rewinddir() was as easy as setting a value to zero! Now we don't have to open and close the same folder, but instead just jump back to the beginning. 2017-05-03 22:57:48 +01:00
toasterbabe
66f56bbba3 * Menu always updates for file load... by doing the refresh in the drawing function, eep. Oh well.
* M_StartMessages when file loading goes wrong! (Determined by CONS_Alerts of warning level CONS_WARNING and CONS_ERROR happening after W_LoadWadFile has been called.)
* Now actively tries to keep your place on the menu if files are deleted between calls to preparefilemenu().
* More enums! DIR_ (for if you want to try embed more metadata in the dirmenu strings) and REFRESHDIR_ (for refreshing the menu and handling warnings).
* Handle changing size menu between calls to opendir() better.
* Don't crash on draw/enter attempt if one of the dirmenu's is null.
* Moved the addons menu to OP_MainMenu instead of MainMenu for now so it can be tested in MP without needing to mess with several menus.
* Display the amount of space used for serverinfo_pak's fileneeded on the addons menu, both visually and with a percentage.
2017-05-03 22:36:08 +01:00
toasterbabe
da003d61c3 Checking whether a file is loaded or not in the menu, and then forbidding multiple load attempts!
Obviously this doesn't work for files you run using exec, but that is the nature of things.
2017-05-02 15:10:52 +01:00
toasterbabe
20fff0ef23 More feature-rich and better engineered.
* Instead of needing to press backspace, going back is now handled via an "(up arrow) UP..." entry in the table.
* Maximum depth is now #define'd instead of dotted around everywhere.
* Enums!
* Exec for .txt (with confirmation dialog) and .cfg (without)!
* Complaints about folders and etc now mention the folder names.
* A shrinking folder now prevents dir_on[] from going beyond its end.
2017-05-02 11:51:37 +01:00
toasterbabe
881f5e70ce * Additional, better freeing.
* Position remembering when going up a level.
2017-05-02 00:12:07 +01:00
toasterbabe
605580358d Addfile menu!
Basic as fuck UI, and the controls for manipulating it suck, but the basic elements of the feature set I'm looking for have been implemented in some form or another. More at a later time.

MI, be glad I didn't do this in deeznux ;P
2017-05-01 23:40:08 +01:00
Monster Iestyn
1e59a807e4 Merge branch 'skybox-improvements' into 'master'
Skybox improvements

Some improvements to skyboxes and new features for them:

* *The Thing's Z position now determines the relative z position of a skybox viewpoint from the ground, the Thing's angle no longer affects the Z position at all.* This should also fix objectplace breaking skyboxes after you place a Thing, and allow Z heights to be more easily controlled by custom skybox mobjs set by Lua's `P_SetSkyboxMobj`.
* The skybox viewpoint Thing's "Parameter" value (or the multiple of 4096 added to the Thing type, if you're still using SRB2DB) determines the ID number for a viewpoint or centerpoint, a value between 0 and 15. By default the game uses the viewpoint and centerpoint using ID 0. Note: this ID system does not apply to custom skybox mobjs set by Lua, only to `MT_SKYBOX` mobjs spawned by Things for a map.
* **Linedef type 448** has been added as a linedef executor special for changing the skybox viewpoint and/or centerpoint used, making use of the new ID system mentioned above:
 * By default, only the *viewpoint* will be changed. The front x offsets set the ID of the new viewpoint to use; if the number is out of range (numbers accepted are 0 to 15), the game will simply not use any viewpoint at all.
 * If the "*Block Enemies*" flag is set, the centerpoint will be changed as well. In this case the front y offsets set the new centerpoint ID to use.
 * If the "*Solid Midtexture*" flag is set, the viewpoint will **not** be changed at all. Combine this with Block Enemies to make the linedef type change only the centerpoint if needed (otherwise the linedef will do nothing lol).
 * By default, only the player who triggered the linedef will see the skybox being changed. If a player did not trigger the linedef executor directly, no change will be seen by anyone. If the "*Not Climbable*" flag is set, the skybox change will be "global", i.e. it will be seen by all players in the map.

In my folder on the FTP I've made a subfolder called "skybox improvements", and in it are the following files:
* srb2win-skyboximprov.exe - the test exe for this branch I've compiled myself
* skyboxchange-test.wad - an edit of my test map for my skybox change Lua script release on the MB, to test out the new skybox change linedef type.

See merge request !89
2017-05-01 14:38:33 -04:00
Monster Iestyn
7f936d8b57 Add CONS_Alert warning as toaster suggested 2017-05-01 19:34:53 +01:00
Monster Iestyn
c4e7bef01a Merge branch 'public_next' 2017-05-01 17:38:35 +01:00
toasterbabe
59397d7cb3 More sound naming consistency! (Sorry.) 2017-05-01 13:48:20 +01:00
toasterbabe
1af1bbee3e Free level select memory whenever it isn't possible to go back to the menu. 2017-05-01 12:56:18 +01:00
toasterbabe
5180bff05b Fix typo. 2017-05-01 11:40:02 +01:00
Monster Iestyn
18fa73ba05 Merge branch 'admin-ban-fix' into 'next'
Admin ban fix

Okay, THIS time admin bans should work properly. Turns out the relevant code for banning did not properly consider the case of admins doing the banning, at least until now.

Unlike my last attempt at fixing admin bans (!165), this one would require both host and admin to have the fix exe assuming everyone else would be using 2.1.17, so I'm merging to next instead of master.

See merge request !167
2017-04-30 21:05:07 -04:00
Monster Iestyn
0dabef730d Merge branch 'allowteamchange-fix' into 'next'
Allowteamchange fix

Fixes "allowteamchange no" to actually work properly and NOT desync you from the game in most cases. You can now switch TO spectator freely (as intended it turns out), and switching FROM spectator is prohibited. The "Enter Game" menu option in Match/Tag now displays one of those blue window notices just like with "Change Teams" in CTF/Team Match if you cannot change teams right now. Everything else works as you'd expect.

The de-sync issue was originally reported here https://mb.srb2.org/showthread.php?p=789965#85

See merge request !168
2017-04-30 21:04:07 -04:00
Monster Iestyn
ce1422a70b Starting work for v.getSpritePatch and v.getSprite2Patch, dunno if these work yet mind 2017-04-30 22:53:05 +01:00
toasterbabe
d669a4e84a Introducing pMasterPalette.
Used instead of pLocalPalette when attempting to determine objective truths, such as "the colours of this gif without color profile modification" and "what indicies should this colormap remap to".

Also, made f_wipe.c's paldiv only get calculated once.
2017-04-30 22:18:06 +01:00