This new function returns a string representing the type of userdata the variable given (e.g. mobj_t, player_t), it even works on "minor" userdata types (player_t.powers, skin_t.soundsid, sector_t.lines, etc)
* Value was getting populated even when it was irrelevant. That's fine, just move it after the valueless parsemode switch.
* Oh, it's struppr'd, of course it's going to compare badly with a lowercase string.
* ...oh, strncmp returns zero when it's equal, not true. Right.
<root>/toaster/smilespatch.wad and !LSF test exe updated on the FTP, btw.
* Create a normal skin, but replace the S_SKIN lump with an almost empty one named P_SKIN.
* Provide "name = existing skin name as one of the first line (comments allowed)
* Reset individual spritenames back to zero sprite2s (or one for SPR2_STND to prevent complete removal) via "reset = SPR2_****" statements.
* No support for changing skin properties that are non-visual at the moment, but I don't really feel like it's wise to have those changable with patch alone. (Hello, tons of "modern Sonic" wadfiles which just change vanilla Sonic's ability to CA_HOMINGTHOK!)
* Sprites patch over.
To see an example in action, look at <root>/toaster/smilespatch.wad.
A spike bug no more
Jumping at spikes on FOFs in reverse gravity - most notably in ERZ3 - no longer teleports you downwards into the death pit beneath it.
See merge request !157
Last few changes for 2.1.17
what it says on the tin
* Updated version number
* Added LJSonic to credits (and changed how I look in the credits to be less stupid)
* fixed resynching players seeing the host turn into a spectator for no reason
See merge request !155
Lua additions
Thought I'd may as well make a merge request so I can remind people of all the various Lua-related changes here (and because it's about time some of them got in):
* Added `P_PointOnLineSide(x, y, line)`. Allows you to quickly determine which side of a line faces the point. *line* can be a real line_t or a custom defined line (just like with P_ClosestPointOnLine).
* Added seg_t and node_t support to Lua (note: these are disabled for now, due to complications with OpenGL that we all know something of by now. Bit of a shame really :( ) - of note is node.children and node.bbox:
* node.children[] is an array that takes 0 or 1 as indexes (or "right" and "left", alternatively)
* node.bbox(child,bboxcoord) is a two-arg function: child can be 0 or 1 (or "right" and "left", alternatively), bbox coord can be 0,1,2 or 3 (or "top", "bottom", "left" and "right", alternatively)
* aside from the above, segs[] and nodes[] store the segs/nodes of the current map; segs.iterate and nodes.iterate iterates through segs/nodes
* NF_SUBSECTOR is also available for usage with node.children
* You can now get the palette indexes (i.e. colormap[n]) of colormap userdata from `v.getColormap`, where n is a palette index number between 0 and 255. Useful for finding out which palette colors turned into what, if they changed at all
* ffloor_t userdata can now save to and be read from $$$.sav in netgames properly; this means custom mobj/player variables and NetVars can both send/recieve them directly if you wanted
* **IMPORTANT** Blockmap search library! (with a new file: lua_blockmaplib.c)
* Format of iteration function: `searchBlockmap(searchtype, function, mobj, [x1, x2, y1, y2])`. Returns true if search was uninteruppted, false if the iteration function returned true at any point
* *searchtype* can be either "objects" or "lines", for looking for mobj_t and line_t stuff in the blockmap respectively
* *function* is a function of your choice to iterate with: (sorry I can't get the next two bullets to be one indent further to the side)
- format of function needed: `funcname(mobj, foundmobj)` or `funcname(mobj, foundline)` (for searching for objects and lines, respectively)
- return value of *function* affects searching somewhat: nil doesn't change searching, false ends searching in a block (but doesn't stop searching, it just moves onto the next), and true ends the full search. Both returning true or false ultimately makes `searchBlockmap` return false.
* *mobj* is the reference mobj that you're checking around (if you don't supply x/y ranges to search in, it defaults to checking within the mobj's radius in both axes). If *mobj* was removed mid-search the search stops and `searchBlockmap` returns false
* (optional) *x1, x2, y1, y2* are coordinates on the map to search the blockmap between, if given
See merge request !54
-If the server tries to kick a joiner who is downloading the game state, they will get a timeout instead, because a regular kick would only happen once the game state has been downloaded
-Added a timeout for player ticcmd packets, again to prevent freezes to happen in some cases
-File/game state downloading is now faster, the speed is controlled by the "downloadspeed" cvar, in packets per tic
-The reason is now properly shown when the server refuses connection
-Changed the default values of "nettimeout" to 10 seconds (previously 15) and "maxsend" to 4 MB (previously 1)
-Added a "noticedownload" cvar that displays a message in the server console when someone is downloading a file
CMake: Fix nasm Linux builds
When compiling under Linux with CMake and nasm/yasm enabled, the operation would fail during linking with undefined symbols related to the tmap files.
This commit adds support for passing flags to the assembler and passes ```-DLINUX``` in order to compile.
After this change, binaries are successfully compiled with either nasm or yasm on Linux systems.
Tested on Ubuntu.
See merge request !153