Commit graph

63 commits

Author SHA1 Message Date
Logan Aerl Arias
cb3deaaaac Update lauxlib.h
lauxlib.h: mark luaL_error as a REPORT function
2024-01-07 15:20:32 -05:00
LJ Sonic
b3ef2b3344 Support loadfile in folder add-ons too 2023-12-28 17:32:36 +01:00
Alam Ed Arias
5693dcad44 Merge branch SRB2:next into loadfile 2023-10-25 19:50:55 +00:00
LJ Sonic
df0c8e0557 Merge remote-tracking branch 'origin/next' into netcode-rerefactor 2023-08-01 19:00:52 +02:00
Sal
26583a9845 Ring Racers CMake + Debug build improvements 2023-08-01 02:29:45 +00:00
LJ Sonic
0ade3ae0bc Move tic and net command handling to new files 2023-07-27 15:38:45 +02:00
LJ Sonic
0b17e3c418 Move netcode files to a new folder 2023-07-27 15:38:42 +02:00
Sally Coolatta
36e6a2001a Paired down OS Lua library
Pretty much removed everything except for time operations. File operations steps on the toes of the IO library, and the others were useless or invasive. The only one I wasn't sure about was `os.tmpname()`, but I think that's something that could be implemented for IO library instead if necessary.

The main reason I want this is because os.time provides an OK way to initially seed RNG on game first boot. But it would also be cute to let Lua modders be able to re-implement Christmas mode / day&night cycles themselves :p
2023-07-20 01:43:10 -04:00
LJ Sonic
0f9c5582a3 Add basic rate limitation for Lua file access 2023-03-19 14:52:12 +01:00
LJ Sonic
379cc4207a Revert "Merge branch 'netcode-refactor' into merging"
This reverts merge request !1920
2023-01-15 17:57:23 +00:00
LJ Sonic
41fb0c8943 Merge branch 'netcode-refactor' into merging 2023-01-15 17:45:06 +01:00
LJ Sonic
7c2fe20cd5 Move tic and net command handling to new files 2023-01-05 22:51:17 +01:00
Arthur
636e6d8c14 MSVC project file works again! Supports Visual Studio 2022.
Also fixed issues with the d_netcmd.c file/folder adding logic.
2022-12-31 19:35:07 -05:00
LJ Sonic
717e0d5a17 Move netcode files to a new folder 2022-12-31 14:10:19 +01:00
Alam Ed Arias
f5e1d9722f Merge branch 'master' into next 2022-11-11 22:03:58 -05:00
Alam Ed Arias
46186d7632 Cleanup whitespace changes from SRB2_release_2.2.2 2022-11-11 21:19:26 -05:00
sphere
bc5c65306b Merge branch 'table-len-metamethod' into 'next'
Fix __len metamethod ignored on tables

See merge request STJr/SRB2!1328
2022-09-28 21:54:07 +00:00
Jaime Ita Passos
07011a7044 Stop -Waddress warnings 2022-08-11 04:24:24 -03:00
GoldenTails
6f19615fab Remove unused variable to fix warning in luaB_loadfile. 2021-09-06 15:05:34 -05:00
GoldenTails
bd9118eae7 Implement loadfile 2021-09-05 14:52:40 -05:00
GoldenTails
9441bafb09 Restructure the code to be able to possibly support loadfile. 2021-09-05 14:38:51 -05:00
LJ Sonic
4af3b860fd Merge branch 'next' of https://git.do.srb2.org/STJr/SRB2.git into folder-next 2021-06-25 00:30:30 +02:00
James R
ee72312dea Merge remote-tracking branch 'origin/master' into makefile-revision-final 2021-05-07 13:32:19 -07:00
James R
f9813844e7 Update CMakeLists.txt to use Sourcefiles
This establishes (near) parity of source code file lists
between the Makefile and CMakeLists.txt

To make that change I messed around CMakeLists.txt a bit.
It now uses target_sources and target_compile_definitions.
I also removed some MSVC stuff since we don't actually
care about MSVC--it made things easier.

CMake minimum version 3.0 -> 3.13 for target_sources.
2021-05-05 04:00:44 -07:00
James R
b31056c7d9 Rewrite Makefile to be modular as well as more automated
Some key points for programmers:
- Source code files are mostly listed in a 'Sourcefile'.
  So you no longer directly edit the object list. There
  can be multiple Sourcefiles and they can even live in
  subdirectories--the directory name will be prepended to
  every filename in the list. Of course, the Makefile
  still needs to be edited to read from each Sourcefile.
- Different rules are no longer required for source code
  files that live in subdirectories (such as sdl/ or
  hardware/). Subdirectories Just Work so go ham!

In addition to those points, another important change is
that the bin directory is no longer divided into platform
subdirectories (Linux64, Mingw, etc). Executables now go
directly into bin. If you use DEBUGMODE or target 64-bit,
then subdirectories for 'debug' and '64' will be made
though.

Oh by the way, I don't think make clean actually removed
files before on Windows. It should now. I also fixed as
many little inconsistencies like that as I noticed.

And now just an overview of the technical aspects that
shouldn't affect anyone who doesn't REALLY care about the
Makefile...

objs and dep directories have been moved to a make
directory. Makefile.cfg and its variants have been moved
out of their various subdirectories to src/Makefile.d
make distclean removes the bin and make directories
entirely, but make clean and cleandep still only affect
the current build target.

When I say automation, I mean that a lot of copy pasting
in the Makefile has been reduced.
2021-05-04 04:22:37 -07:00
James R
44d217807f Collect makefiles 2021-05-03 23:07:44 -07:00
Jaime Ita Passos
dca158096d Experimental implementation 2021-03-22 23:56:55 -03:00
Nev3r
b642682dde Merge branch 'next' of https://git.do.srb2.org/STJr/SRB2 into lua-tag-iterator
# Conflicts:
#	src/doomtype.h
2020-12-16 17:27:44 +01:00
Roberto Ierusalimschy
69e0240978 tables and strings respect __len metamethod 2020-12-13 21:25:11 -08:00
James R
8701caa110 Merge branch 'blua-urite' into 'next'
Fix crash when trying to use bitwise NOT on true/false/nil

See merge request STJr/SRB2!1262
2020-12-10 15:03:39 -05:00
James R
621efbfa15 Lua taglib for accessing taggroups
The global "tags" can be iterated upon for every unique tag which is set in the
level. If a tag is set on a sector/line/thing, it will be included. Taking the
length of "tags" will give you the number of these unique tags. (If a tag is
set on multiple sectors/lines/things, it will only be counted once though.)

For sectors, lines and mapthings, call the field "tagged". This function takes
one argument, which is the tag. The return value can be iterated over for all
the sectors/lines/things with that tag. The length can also be taken for the
number of such objects. If no argument is given, the global tag is default.
2020-12-04 00:30:08 -08:00
James R
5a8e653cd5 More concise 2020-11-21 13:43:32 -08:00
James R
377a9c10f0 Lua: disallow bitwise not on anything but number values
This fixes a crash.
2020-11-21 13:37:45 -08:00
Louis-Antoine
01124f2076 Fix Lua stacktrace not showing in various situations 2020-11-13 19:12:25 +01:00
James R
bd9fda8ceb Merge branch 'lua-polyobjects' into 'next'
Lua polyobjects

Closes #19

See merge request STJr/SRB2!1140
2020-10-15 19:08:54 -04:00
Steel Titanium
16569b4e9a Make "divide by zero" or "modulo by zero" errors show the file and line of where it happened
Shouldn't break scripts as it stops execution as soon it happens, like it already does.
2020-09-14 22:54:07 -04:00
GoldenTails
c61eeb9238 Can we just do this please? Thanks. 2020-09-09 22:19:14 -05:00
Monster Iestyn
d5beae9738 Begin work on adding access to polyobjects in Lua:
* create new file lua_polyobjlib.c
* made a stub LUA_PolyObjLib function
* added META_POLYOBJ to lua_libs.h
* updated makefile, CMake and MSVC project files for lua_polyobjlib.c
2020-09-08 18:08:08 +01:00
Nev3r
2322644488 Merge branch 'dofile' into 'next'
Add dofile() to Lua

See merge request STJr/SRB2!969
2020-06-12 02:32:16 -04:00
Louis-Antoine
1dbb755743 Add dofile() to Lua 2020-05-29 17:35:07 +02:00
Louis-Antoine
c8948909d3 Fix I_Error when queuing multiple Lua files 2020-05-19 23:50:37 +02:00
Louis-Antoine
f620b52672 Fix sending Lua files in text mode 2020-05-19 21:36:21 +02:00
Louis-Antoine
06d3af6716 Refactor Lua file transfer code 2020-05-19 15:16:51 +02:00
Louis-Antoine
e3cbdf8fab Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
Louis-Antoine
7ba93c184f Fix warning and formatting 2020-03-02 13:33:12 +01:00
James R
cce5308108 Fix compiler warnings 2020-02-20 17:18:26 -08:00
Louis-Antoine
2d142f734f Remove all potentially dangerous functions
Basically any function that calls fopen() is gone,
except the ones created by me.

And no access to stdin/stdout/stderr
through io.read()/io.write().
Not really harmful but why would you want that in SRB2.
2020-01-25 01:37:50 +01:00
Louis-Antoine
16c7981bb8 Fix the compiler warning fix 2020-01-24 23:34:39 +01:00
Louis-Antoine
51947319ee Fix two compiler warnings 2020-01-24 23:24:54 +01:00
Louis-Antoine
9658ef2c5b Add .dat and .csv to whitelisted file extensions 2020-01-24 17:51:20 +01:00