Commit Graph

2648 Commits

Author SHA1 Message Date
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
Monster Iestyn a7ef6fd0d7 Merge branch 'public_next' 2017-05-03 19:41:22 +01:00
Monster Iestyn 89af58de4c Merge branch 'next' into public_next 2017-05-03 19:40:49 +01:00
Monster Iestyn 20351a103e Merge branch 'master' into next 2017-05-03 19:37:55 +01:00
Monster Iestyn 30143d2e25 Merge branch 'gitignore-stuff' into 'master'
.gitignore stuff

The following changes have been made to `.gitignore` files in the objs/ and bin/ folders:
* All the `.gitignore`s living in subfolders of objs/ have been done away with and replaced with a single `objs/.gitignore`, covering all the things that the subfolders ignored before (including depend.ped, if anyone is like me and has to remove that file manually)
* All the `.gitignore`s living in subfolders of `bin/Mingw` ignore .exes of any name, not just srb2win/srb2dd/srb2sdl. en.mo is also ignored now... or rather any .mo file (just in case). This is mostly for my own sanity and that of anyone else who uses EXENAME=[name.exe] when compiling with MinGW.

If you're not sure what `.gitignore` does exactly, as far as I'm aware it literally just tells Git what to "ignore" (or rather, not track), so anyone using Git GUI or some other Git program etc doesn't have to see changes certain files and can't accidentally commit the files or whatever.

See merge request !174
2017-05-02 22:12:37 -04: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
Monster Iestyn b364c0186b Merge branch 'next' into public_next 2017-05-01 17:36:51 +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 d7a216e192 Ignore all *.exe files and *.mo files (such as en.mo) in all bin/Mingw folders 2017-04-30 20:42:24 +01:00
Monster Iestyn 19ca1698d8 Combine all /objs/*/.gitignore files into /objs/.gitignore, make sure depend.ped is also ignored 2017-04-30 20:33:36 +01:00
Monster Iestyn 21950687ed Make sure noreload levels don't do anything weird with the skybox mobj pointers, especially if Lua was involved
We can assume skyboxviewpnts/skyboxcenterpnts sort themselves out from reloading all the Things at least I guess?
2017-04-26 21:34:22 +01:00
Monster Iestyn bdb3c2ea0e extrainfo now determines "skybox ID", a number between 0 and 16 to identify the viewpoint or centerpoint
also I made that change skybox linedef exec special I guess (linedef type 448)
2017-04-26 18:16:01 +01:00
Monster Iestyn 6c619af9ce Use the skybox mobj's actual z position, rather than using the spawnpoint angle!
This means setting the skybox view angle is no longer stupid, objectplace no longer breaks skyboxes, and Lua-defined skybox mobjs can actually set a Z position more easily now.
2017-04-26 17:12:57 +01:00
Monster Iestyn 5608c4b4e7 Merge branch 'public_next' 2017-04-26 16:17:29 +01:00
Monster Iestyn 72d52547fa Merge branch 'next' into public_next 2017-04-26 16:16:57 +01:00
Monster Iestyn 058ad4df88 Merge branch 'master' into next 2017-04-26 16:15:40 +01:00
Monster Iestyn c16ae57f91 Merge branch 'addfile-directories-fix' into 'next'
Addfile directories fix

This is a fix for this bug: https://mb.srb2.org/showthread.php?t=42279

See merge request !166
2017-04-24 20:46:38 -04:00
Monster Iestyn e03577d957 Merge branch 'falling-rocks-fix' into 'next'
Falling rocks fix

This fixes the rock spawners' rocks not being removed if they rolled down to the ground from a slope rather than bouncing (see https://mb.srb2.org/showthread.php?t=41963)

See merge request !162
2017-04-24 20:41:32 -04:00
Monster Iestyn 7658469c23 Merge branch 'drawfill-fix-2' into 'master'
DrawFill made not stupid

made it more consistent with other drawing functions; doesn't draw off of the sides, and doesn't ignore snapping or widths for reasons that don't make sense
(for instance: the green bar in MI's test script showed *above* the blue one in non-green resolutions in 2.1.17)

See merge request !173
2017-04-24 12:43:10 -04:00
Monster Iestyn 7f7c7c58ab Use less-than, not less-than-or-equals, since deststop is off-screen 2017-04-24 17:41:50 +01:00
Monster Iestyn bbeb69c477 Merge branch 'polyobject-checksight-fix' into 'master'
Polyobject checksight fix

This branch fixes how polyobject lines apparently stop objects from "seeing" other objects behind them; the relevant code now checks the polyobject's top and bottom too! This is relevant for enemies trying to get you, Homing attack, Fang's gun, etc etc.

Can't say if it's perfect or not, but it's a definitely an improvement over what happened before, anyhow.

See merge request !86
2017-04-21 11:58:35 -04:00
Monster Iestyn ed9dfaa617 Merge branch 'master' into polyobject-checksight-fix 2017-04-21 16:32:38 +01:00
Monster Iestyn f77e107c1a Merge branch 'no-doubling-texture-heights-plz' into 'master'
No doubling texture heights plz

If you didn't know, apparently SRB2 was hardcoded to double the height of 64x64 textures created using TX_START/TX_END. This has frustrated some a lot. This branch removes this hack at last (there doesn't appear to be any visual issues resulting from removing it, anyway).

srb2win-nodoubletexheight.exe can be found in my FTP folder.

See merge request !85
2017-04-20 21:00:48 -04:00
Monster Iestyn 839dc6bcc1 Merge branch 'hud-drown-numbers-fix' into 'master'
First person HUD drown numbers fix

This branch fixes the following issues with the first person HUD when drowning:
* "0" turning into Sonic's drown sprite, since both sprites happen to be named DRWNA0
* SF_MACHINE's special drowning numbers from 3rd person not being used

See merge request !80
2017-04-20 16:20:00 -04:00
Monster Iestyn 3edbf0a085 Fixed P_CheckSight not considering polyobject top and bottom at all
This was actually kind of easier to do than I expected, though I can't tell if there's anything else I need to do or not
2017-04-19 22:19:46 +01:00
Monster Iestyn f0256c41be Be gone ye old texture hack 2017-04-19 20:00:19 +01:00
Monster Iestyn 25015142b1 Merge branch 'mi-hardcode-stuff' into 'master'
MI hardcode stuff

A branch where I hardcode some of the various SOCs in patch.dta and some of our external files

Stuff hardcoded in this branch (so far)
* The contents of SOC_PITY from patch.dta
* The contents of SOC_XMAS from patch.dta
* The big gargoyle for DSZMaster-n1.wad

I've made a subfolder called "mi-hardcode" in my FTP folder for files you'll need for testing:
* srb2win-mihardcode.exe is an exe I compiled for this branch
* An edit of patch.dta with SOC_PITY and SOC_XMAS removed, this can be the new patch.dta once merged in

See merge request !84
2017-04-19 09:19:13 -04:00
Monster Iestyn 0f2c9c40a2 Hardcoded the big gargoyle 2017-04-18 20:38:13 +01:00
Monster Iestyn 941ab72204 Hardcode new/updated xmas scenery object type/state info 2017-04-18 18:32:52 +01:00
Monster Iestyn 0e358b3d9f Add new Pity shield orb state info, remove unused Pity states 2017-04-18 17:36:04 +01:00
Monster Iestyn 93efb3084e Merge branch 'mi-a-bit-of-cleanup' into 'master'
MI's unimportant code cleanup

Just removing a bunch of unused variables/function prototypes from the source code and similarly minor stuff, nothing here should change gameplay much (if at all).

See merge request !71
2017-04-17 14:43:50 -04:00
Monster Iestyn 798628eef1 Merge branch 'mi-minor-refactoring' into 'master'
MI minor refactoring

Just moving the locations of some consvar externs from d_netcmd.h to other header files in which I think they should REALLY belong. Ultimately this should not affect gameplay whatsoever, it's just code cleanup.

See merge request !81
2017-04-17 13:40:51 -04:00
Monster Iestyn a0179aa29b Merge branch 'skybox-quake-fix' into 'master'
Skybox quake fix

Fixes earthquake effects not being properly scaled for skyboxes. If a skybox is 16x larger than life, then the quake is only 16th as strong, for instance. Also some skybox scaling code cleanup was done I guess.

Probably easier to see it in action than explain what I've done: I've put srb2win-skyboxquakefix.exe in my FTP folder for peeps to be able to test out this branch. Also there is luatest-startquake.lua, which produces a fairly strong (10*FRACUNIT intensity) 3-second quake on pressing the Custom 1 key.

See merge request !82
2017-04-15 17:58:04 -04:00
Monster Iestyn 7629a0710e Make sure quakes are scaled for skyboxes
While I was at it I also refactored most of the skybox view scaling code so it isn't needlessly duplicated
2017-04-15 20:21:54 +01:00
Monster Iestyn 181c8bd742 These convar externs aren't moving files, I'm just shifting them up to live with their relatives 2017-04-14 19:56:51 +01:00
Monster Iestyn 0921244ba4 Move analog consvars to g_game.h 2017-04-14 19:00:46 +01:00
Monster Iestyn 488c4071ba Moved screenshot/movie consvar externs to m_misc.h 2017-04-14 18:14:15 +01:00
Monster Iestyn 46c3c42eba cv_controlperkey probably belongs in g_input.h too 2017-04-14 18:02:35 +01:00
Monster Iestyn 887e7e0b7d Moved most of d_netcmd.h's 2P mouse consvar externs to the files with their 1P counterparts 2017-04-14 17:45:27 +01:00