Commit graph

2774 commits

Author SHA1 Message Date
Monster Iestyn
fd1efff338 Added the META_ACTION userdata type to Lua, created getActionName() to return string name
SRB2's built-in action types will now all be pushed as META_ACTION, state_t.action can be assigned META_ACTION and return it

getUserdataType returns "action" for META_ACTION variables
2017-05-17 20:36:40 +01:00
Monster Iestyn
21d29c8550 Merge branch 'public_next' 2017-05-17 16:19:01 +01:00
Monster Iestyn
0cf42d8bb8 Merge branch 'next' into public_next 2017-05-17 16:18:42 +01:00
Monster Iestyn
1781ccf4ca Merge branch 'master' into next 2017-05-17 16:16:50 +01:00
Monster Iestyn
b564c8ab9a Merge branch 'sdl-fixes' into 'master'
SDL fixes and cleanup

Mostly cleanup tbh. I noticed a few things that bugged me when examining SDL's code recently, thought I might as well fix them up a bit.

These changes definitely does not affect netplay, so this can be merged to master just fine.

See merge request !183
2017-05-16 23:09:23 -04: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
Monster Iestyn
8454e75e3c Merge branch 'extracolormaps-fix' into 'next'
R_InitExtraColormaps fix

This fixes the `R_InitExtraColormaps` function so that it correctly realises there are no "extra colormaps" actually in SRB2's files, rather than telling you there are 6 extra colormaps on game startup (or however many WAD files total you have added).

For those who don't know what the function does, it searches for C_START/C_END markers, and if they exist, adds any lumps inbetween to a list of extra colormaps internally. They are never used by the game though, since we last supported colormaps of that kind so long ago I don't think anyone remembers when anymore (definitely more than a decade at least).

Merging to next since I don't know if this would cause any netplay issues or not tbh.

See merge request !182
2017-05-15 17:14:47 -04: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
Alam Ed Arias
7d4146870a Appveyor: keep a stable name version of the archive 2017-05-13 12:14:09 -04:00
Alam Ed Arias
377fc81447 Appveyor: disable deployment 2017-05-13 12:07:37 -04:00
Monster Iestyn
635789c1ec Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
2017-05-12 23:03:38 +01:00
Monster Iestyn
e6bee93e40 Merge branch 'next' into public_next 2017-05-12 22:58:31 +01:00
Monster Iestyn
a1f5caeba6 Merge branch 'update-to-v2.1.18' into 'next'
Update to v2.1.18

Exactly what it says on the tin.

See merge request !180
2017-05-12 16:08:31 -04: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
Monster Iestyn
4da3b7eac1 Merge branch 'next' into public_next 2017-05-11 22:57:45 +01:00
Monster Iestyn
55fd0aba91 Merge branch 'master' into next 2017-05-11 20:47:12 +01:00
Monster Iestyn
7185455d6a Merge branch 'jetjaw-crash-fix' into 'next'
Jet Jaw crash fix

Turns out not having MF_SHOOTABLE can cause the Jet Jaw to endlessly loop between the two states, until somehow LUA_CallAction inexplicably causes Z_StrDup to crash anyway (that one's a mystery to me, I'm not going to look into it right now). I tweaked A_JetJawChomp so this endless loop can't happen anymore.

See merge request !176
2017-05-11 15:23:56 -04:00
Monster Iestyn
435ea7dc9d Merge branch 'invalid-node-hotfix_master' into 'master'
Invalid node hotfix master

Quick hotfix to prevent `Net_CloseConnection` from crashing if the node's number is invalid.

See merge request !179
2017-05-11 15:17:31 -04: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
Alam Ed Arias
5f8318642b Merge branch 'a_buncha_compile_fixes' into 'master'
A buncha compile fixes

does what it says on the tin, all commits have @Alam 's error log in them

See merge request !93
2017-05-09 09:51:51 -04: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
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
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
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
Monster Iestyn
560fb53a1e Merge branch 'public_next' 2017-05-08 16:24:40 +01:00
Monster Iestyn
5950d8209f Merge branch 'next' into public_next 2017-05-08 16:24:19 +01:00
Monster Iestyn
3d5ac40d00 Merge branch 'master' into next 2017-05-08 16:17:17 +01:00
Monster Iestyn
4008cae507 Merge branch 'objs-folders-fix' into 'master'
obj folders fix

Partial backtrack of changes I made in !174. Apparently removing all the `.gitignore` files from `/objs`'s subfolders removed the only reason Git was keeping the folders alive (Git doesn't care about empty folders as it turns out). So now they have `.gitignore`s again, with a warning in each not to remove them.

See merge request !177
2017-05-08 11:16:07 -04:00
Monster Iestyn
1745966aa6 Re-add all the folders present in objs before my .gitignore changes, by adding .gitignore files again to keep them from disappearing 2017-05-08 15:54:17 +01:00
Monster Iestyn
41130465b4 Use NF instead of normal P_SetMobjState to prevent endless looping 2017-05-07 22:21:17 +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
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
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