Commit Graph

293 Commits

Author SHA1 Message Date
Joshua Scoggins
5b2933e217 Defined USE_PORTABLE_C when we can't figure out the platform 2016-04-17 23:06:49 -07:00
Joshua Scoggins
535832668f Fixed a broken function call 2016-04-17 23:04:12 -07:00
Joshua Scoggins
e5c0e4f3f4 Add better platform detection abilities 2016-04-17 23:02:49 -07:00
Joshua Scoggins
e82ad0c131 Move system specific deinit to a separate function for now 2016-04-17 23:02:39 -07:00
Joshua Scoggins
b221d5fce2 Make it so that anything system specific is not in SE_InitEngine 2016-04-17 22:53:31 -07:00
Joshua Scoggins
a3c5d30f21 Move the "please abstract" seconds to separate static functions for now 2016-04-17 22:49:58 -07:00
Joshua Scoggins
6f90130578 Added vim swap files to the .gitignore 2016-04-17 22:40:36 -07:00
Joshua Scoggins
21d4aec7f7 Follow coding conventions 2016-04-17 22:40:08 -07:00
Joshua Scoggins
12e8b991b3 Move the platform identification code out of SE_InitEngine to PlatformIdentification 2016-04-17 22:39:19 -07:00
Daniel Gibson
78ab018fde CMakeLists.txt: output lib* to Debug/ subdir; suppress more warnings
ssam expects lib* to be in the Debug subdir, so make cmake put it there,
this way it's easier to copy the binaries to your install/Bin/ dir to
test.
clang gives a lot of -Wlogical-op-parentheses warnings, suppress them.
2016-04-18 00:56:21 +02:00
Daniel Gibson
a358a1763f Some more FIXMEs 2016-04-18 00:53:58 +02:00
Daniel Gibson
599f644328 Resolved some 64bit issues, marked/commented some others
introduced PLATFORM_32BIT and PLATFORM_64BIT macros, so you can do
#ifdef PLATFORM_64BIT if you need to.
I needed that for CDrawPort::GetID() to properly CRC a pointer.
Also added a sanity check in Engine/Base/Types.h that makes sure that
uintprt_t and size_t have the same size, as the code uses size_t to
store pointers (or cast from pointer to int) all over the place.

Made some "tags" from Engine/Templates/BSP_internal.h size_t instead of
ULONG - they're used to store pointers to identify vertices and such,
so they'd better be big enough to actually store a pointer.
Some more are still missing.
2016-04-17 23:35:04 +02:00
Daniel Gibson
8d26863a51 Improve some portable C implementations of math functions
* FloatToInt() should now  round correctly ot nearest, even for
  negative numbers
* Log2() now calls log2f() instead of log10()*3.321 - no idea what the
  previous code was about, I doubt it's faster (and the ASM code uses
  something like log2, too).
* FastLog2() (for integers) now uses __builtin_clz() when building with
  GCC/clang - the resulting ASM should be pretty similar to the inline
  ASM below. I wonder why that function takes signed ints, log2(-1) in
  reality is an irrational number (but the function returns 31)..
  Also, both the inline ASM and my version return 0 for Log2(0), but
  INT_MIN would be closer to the truth
* commented out FastMaxLog2(), it's unused.
* implemented _rotl() using a fast(er) trick from
  http://blog.regehr.org/archives/1063
2016-04-17 23:15:56 +02:00
Ryan C. Gordon
aaba575856 Merge pull request #25 from DanielGibson/no-malloc-h-soundfix
Only use <malloc.h> on Win32; increase SDL sound buffer
2016-04-16 19:38:58 -04:00
Daniel Gibson
b934fa1945 Increase SDL soundbuffer for smoother sound playback
before it sounded shitty on my system, no it sounds good.
2016-04-17 01:07:14 +02:00
Daniel Gibson
24dcb9cc4f Don't #include <malloc.h> on Linux, only on Windows
Linux, FreeBSD and OSX should use stdlib.h instead.
2016-04-17 01:06:39 +02:00
Ryan C. Gordon
dc2c869cfc Merge pull request #24 from ptitSeb/master
More OpenPandora support (special keymap) and optionnal Multi-Threading.
2016-04-15 14:52:56 -04:00
Ryan C. Gordon
d66559abfa Merge pull request #23 from Yamagi/freebsd
Add Freebsd support
2016-04-15 13:07:29 -04:00
Ryan C. Gordon
8006012b90 Merge pull request #20 from stevenc99/rdynamic
Export symbols of main executable to dynamic libs
2016-04-15 13:03:07 -04:00
Ryan C. Gordon
4f9b11eada Merge pull request #22 from stevenc99/DedicatedServer
Dedicated server
2016-04-15 13:00:25 -04:00
Yamagi Burmeister
0e672b866e Determine CPU speed on FreeBSD 2016-04-13 19:24:51 +02:00
ptitSeb
cd2a586a9e Better #if condition, and add a warning to be better checked latter 2016-04-13 08:21:50 +02:00
Steven Chamberlain
95b4404cbc DedicatedServer: declare a dummy _hwndMain 2016-04-13 02:25:58 +01:00
Steven Chamberlain
9f7467d3ad Fix another 1L literal 2016-04-13 02:24:55 +01:00
Steven Chamberlain
1a7ec841cb Export symbols of main executables for shared libs
Set the ENABLE_EXPORTS property on the main executables, which adds
linker flag -rdynamic if the compiler supports it.  This ensures symbols
are available for dynamic objects (such as shared libEntitiesMPD.so) to
use.
2016-04-13 02:00:21 +01:00
ptitSeb
9678ec3e58 Enabled Multi-Threading (as an option) + OpenPandora specific changes (for Shoulder As Mouse Buttons) 2016-04-12 22:29:39 +02:00
Yamagi Burmeister
b299789db5 mntent.h is another linuxism and unnecessary on FreeBSD. 2016-04-12 19:27:52 +02:00
Yamagi Burmeister
d1d9c8d094 There's no malloc.h on FreeBSD.
Like in OS X malloc() is part of stdlib.h.
2016-04-12 19:27:52 +02:00
Yamagi Burmeister
08dae0c605 Add FreeBSD defined to CMakeLists.txt
- Detect FreeBSD.
- Set both PLATFORM_UNIX and PLATFORM_FREEBSD. The latter is required to
  distinguish FreeBSD from other unixoid platforms like Linux.
- On FreeBSD 3rd party libs are installed to /usr/local, we need to add
  /usr/local/include as include directory.
- Add linker options for FreeBSD. FreeBSD has no -ldl.
2016-04-12 19:26:58 +02:00
Ryan C. Gordon
df6199de70 Merge pull request #19 from rcgordon/sdl2-port
Sdl2 port
2016-04-12 01:38:05 -04:00
Ryan C. Gordon
2dd011573b Merge pull request #18 from salamanderrake/sdl2-port-findsdl2
Auto linking SDL2 libraries
2016-04-12 01:36:12 -04:00
Ryan C. Gordon
a0595204d4 Fixed what appears to be an uninitialized memory access.
This appears to fix crashes in 64-bit Linux builds. Might all be luck, though.
2016-04-12 01:27:40 -04:00
Salamanderrake
df16878e0e FindSDL2.cmake: Added module to help find system libraries for SDL2
CMakeLists.txt: Modified to link system wide SDL2 libraries and link to
	system wide headers
SplashScreen.cpp: commented out as its post SDL2.0.4 >> SDL_WINDOW_SKIP_TASKBAR
2016-04-12 01:21:25 -04:00
Ryan C. Gordon
67e940def8 Merge pull request #17 from RocketersAlex/linux-port
GameAgent - list servers bugfix.
2016-04-12 00:12:51 -04:00
Ryan C. Gordon
1d4440f02d Don't use FULLSCREEN_DESKTOP mode until Ryan finishes the backbuffer code. 2016-04-11 23:45:59 -04:00
Ryan C. Gordon
56de02e4b8 Merge pull request #14 from ptitSeb/master
Preliminary support for The First Encounter
2016-04-11 22:59:05 -04:00
RocketersAlex
dd0ad84385 GameAgent - list servers bugfix (update) 2016-04-12 04:10:43 +03:00
RocketersAlex
eeebba11dc GameAgent - list servers bugfix 2016-04-12 04:03:25 +03:00
ptitSeb
dfe262b619 Don't pump SDL Event in GetInput, or they will be missing in SeriousSam.cpp:SubMain(...) 2016-04-11 08:32:38 +02:00
Ryan C. Gordon
02af656d1c Whoops, forgot to actually enumerate physical display resolutions. 2016-04-10 00:54:45 -04:00
Ryan C. Gordon
927c44e9d8 Look for SDL2 libraries; I don't think this is right yet, though. 2016-04-10 00:54:23 -04:00
ptitSeb
cb039e972f Remove some Float Divide to use Integer and Shift in C Portable helper function on LayerMixer 2016-04-09 23:57:58 +02:00
ptitSeb
98ebac941a Change CTString.Match to treat backslashes as slash (fixes Netrisca categories for new messages) 2016-04-09 14:15:33 +02:00
ptitSeb
87a67eccf5 Fixed Portable C versio of ShadowMap Layer Mixer 2016-04-09 13:20:13 +02:00
Ryan C. Gordon
6ce0b9b27e First attempt at a port to SDL2. Untested! 2016-04-09 02:18:57 -04:00
Ryan C. Gordon
284f6c63ca Fixed a sizeof bug.
If you have...

void myfunc(char buf[16]) {
    printf("%d\n", (int) sizeof (buf));
}

...this will print sizeof (char *) instead of 16, so this fixes a piece of
code that assumed the latter instead of the former.
2016-04-09 01:03:44 -04:00
ptitSeb
df746ab6d1 A few TFE changes 2016-04-08 13:40:56 +02:00
ptitSeb
e1fd158fd6 TFE now start a game 2016-04-08 08:18:46 +02:00
ptitSeb
a1b399177a Added Entities generated files to .gitignore 2016-04-08 07:51:50 +02:00
ptitSeb
bd0b38ba00 It compile now 2016-04-08 07:51:13 +02:00