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
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
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
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
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
bd0b38ba00
It compile now
2016-04-08 07:51:13 +02:00
ptitSeb
422db3c58c
Preliminary First Encounter support
2016-04-08 00:11:36 +02:00
ptitSeb
f37df71029
Float fest\!
2016-04-07 18:13:50 +02:00
ptitSeb
6cc2a36a34
Merge branch 'master' of https://github.com/ptitSeb/Serious-Engine
2016-04-07 15:20:20 +02:00
ptitSeb
6a2800e258
Preparing First Encounter (but it doesn't work for now)
2016-04-07 15:19:13 +02:00
ptitSeb
253df3ec46
A closing bracket seemed missplaced
2016-04-07 12:07:12 +02:00
ptitSeb
19bd3f733b
Use SDL constants for mouse buttons
2016-04-07 10:45:45 +02:00
ptitSeb
0c16613056
Fix a nasty typo
2016-04-07 09:10:09 +02:00
ptitSeb
3ec4d484e2
Fix for 64bits build
2016-04-07 09:09:51 +02:00
Ryan C. Gordon
239b9c7992
Patched to compile.
2016-04-07 00:21:28 -04:00
Alexander Pavlov
6b9ebc3ccb
Update GameAgent for Linuxport.
2016-04-06 23:31:08 -04:00
Ryan C. Gordon
e2e6f41582
Merge branch 'master' of git://github.com/ptitSeb/Serious-Engine into ptitSeb-master
...
Conflicts:
Sources/Engine/Math/Float.cpp
2016-04-06 23:27:55 -04:00
Ryan C. Gordon
9820436fbe
First pass at cleaning out 64-bit issues.
...
Touches a lot of code to remove long constants like "1L", so this patch is
large and ugly, but I think it makes all those Clamp() calls look nicer in
the long run.
Most of the game is 64-bit clean, since we can build without assembly code
now. I've marked the things that are obviously still wrong with STUBBED lines.
That being said: a 64-bit build can already run the demos mostly correctly,
so we're actually almost there!
There are a few obvious things that are obviously wrong, to be fixed.
2016-04-06 23:20:29 -04:00
Ryan C. Gordon
70f3f7fe35
Turned off an assert that reads past the start of an array.
...
It'll crash here anyway if that assertion would have triggered, I think.
2016-04-06 23:20:29 -04:00
ptitSeb
2ccc337898
The control87 is a fake one when using USE_PORTABLE_C, regardless the architecture
2016-04-06 22:45:02 +02:00
ptitSeb
efde059273
Getting paranoid with mixed integer / float operations
2016-04-06 22:45:01 +02:00
ptitSeb
ead5da376d
Cannot cast a Float to Unsigned integer directly on ARM, of sign will be lost, so double cast
2016-04-06 22:45:01 +02:00
Ryan C. Gordon
553dbe2c62
Deleted changelog autogenerated by Visual C++.
2016-04-06 15:42:40 -04:00
Ryan C. Gordon
6b248af4d0
Moved STUBBED where all platforms can see it, made it more robust.
2016-04-06 15:35:12 -04:00
Ryan C. Gordon
b42025bc9f
Unix basedir: Don't read past start of array if $PATH has an empty item.
2016-04-06 15:01:09 -04:00
Ryan C. Gordon
91827e7d2a
Define PLATFORM_PANDORA instead of PANDORA, to match other targets.
2016-04-06 13:40:08 -04:00
ptitSeb
7590c3ca04
GLES hardware doen't read depth, so I assume ARM based machine can'tt either
2016-04-06 16:30:39 +02:00
ptitSeb
b76bbc77d4
Fixed a typo
2016-04-06 14:15:05 +02:00
ptitSeb
4bfca131b8
gettimeofday is not reliable on PANDORA, so use clock_gettime instead
2016-04-06 13:56:26 +02:00
ptitSeb
ddb0e94ef2
Rename isMenuEnabled to isMenuEnabled_ to avoid a symbol collicion that (can) happens at runtime
2016-04-06 13:54:22 +02:00
ptitSeb
4757cbbd2b
Just to be safe, as casting +inf to integer gives 0xFFFFFFFF on x86 and 0x7FFFFFFF on arm
2016-04-06 13:52:10 +02:00
ptitSeb
c4ac41ed56
Added codepath for ARM here (simple copy of PPC version)
2016-04-06 13:49:12 +02:00
ptitSeb
b2fd42dc60
TREMOR function signatures
2016-04-06 13:48:32 +02:00
ptitSeb
8dd48b5cd8
Unstubbed the Portable C functions of LayerMixer
2016-04-06 13:47:10 +02:00
ptitSeb
af9d472619
Unstubbed the Dithered Portable C functions (ordered one unstested)
2016-04-06 13:46:26 +02:00
ptitSeb
73aab13a79
Try to fix the Portable C UploadTexture_OGL function
2016-04-06 13:44:36 +02:00
ptitSeb
8c03fccd64
Fixed the bsr Portable C function, the game start correctly now
2016-04-06 13:41:32 +02:00
ptitSeb
8c49b5f7a0
Unstubbed the Fog Portable C function
2016-04-06 13:40:56 +02:00
ptitSeb
2406f62c4b
Unstubbed the Color Portable C functions
2016-04-06 13:40:02 +02:00
ptitSeb
73ea5ca7d4
Case fixing of an include
2016-04-06 13:38:09 +02:00
ptitSeb
0252ff1b6c
ARM processor don't convert +inf to 0xFFFFFFFF like a x86 processor do
2016-04-06 13:37:07 +02:00
ptitSeb
f105e7225a
Unstubbed the portable C sound mixer
2016-04-06 13:35:58 +02:00
ptitSeb
4e9dee7763
I had issue with the autoincrement. I prefer some warning about void* math
2016-04-06 13:33:54 +02:00
ptitSeb
205d71eccc
Tremor can be used instead of Vorbis. Usefull for ARM based machines
2016-04-06 13:32:52 +02:00
ptitSeb
ebb70977ea
ASM is now an Option, and so is Pandora build. Tremor can be used instead of Vorbis, and the binary is rename to ssam to avoid collision in name for inplace compiling
2016-04-06 13:31:53 +02:00
Ryan C. Gordon
9581eeb02a
Let CMake file use a pre-built copy of ECC.
...
This help cross-compilation. You can do something like this now, to get a
native ECC that runs on the build machine, then build the rest for the
cross-compile target system:
rm -rf cmake-build-ecc
mkdir $_
cd $_
cmake ..
make ecc
cd ..
rm -rf cmake-build
mkdir $_
cd $_
cmake -DECC=/wherever/SeriousEngine/Sources/cmake-build-ecc/ecc ..
make
2016-04-05 12:06:18 -04:00
Ryan C. Gordon
7bbd5df8c0
Fixed a string-literal-to-char* conversion warning.
2016-04-04 22:42:06 -04:00
Ryan C. Gordon
c752e7cace
Fixed a mismerge.
...
(But I still need to figure out what I'm doing between SetAbsolutePath() and
whatever I had before...)
2016-04-04 22:40:30 -04:00
Steven Chamberlain
3adda272b7
Fix pointer truncation on 64-bit
...
Use size_t instead of int for arithmetic on pointers, to avoid
truncation on ILP64 architectures (like amd64).
2016-04-04 22:09:51 -04:00
Steven Chamberlain
26f1a33749
Building on GNU/kFreeBSD and possibly Hurd
...
* Only use ENOSR and ENOPKG if defined
ENOSR and ENOPKG are part of the POSIX optional STREAMS extension, and
are not available on most other platforms than GNU/Linux.
* Support building on other GNU platforms than Linux
Build for other GNU platforms the same way as Linux: this includes
CMAKE_SYSTEM_NAME "GNU" (GNU/Hurd) and "GNU/kFreeBSD" (GNU/kFreeBSD).
2016-04-04 20:34:34 -04:00
Ryan C. Gordon
5ba4bccabd
Backed out the splitting up of SeriousSam/Menu.cpp
2016-04-04 16:09:41 -04:00
Ryan C. Gordon
f35e86661e
Moved Ogg Vorbis files to the "External" directory, plugged into CMake project.
2016-04-04 02:43:12 -04:00
Ryan C. Gordon
6436618937
Merge github.com:Croteam-Official/Serious-Engine
...
Conflicts:
Sources/Engine/Sound/SoundDecoder.cpp
2016-04-04 02:41:23 -04:00
Ryan C. Gordon
a7e4f8237e
Patched to compile on Linux, and cleaned out almost all compiler warnings.
2016-04-04 02:34:07 -04:00
SLAwww
1e6eafd777
Merge pull request #33 from rcgordon/ecc-empty-files-simplify
...
Simplify dealing with empty files in ECC
2016-04-04 00:43:41 +03:00
zcaliptium
f697fcc2f5
Engine: Return dynamic vorbisfile library loading.
2016-04-03 23:45:57 +03:00
zcaliptium
6e35f6bd11
Initial commit
2016-04-03 18:59:48 +03:00
Ryan C. Gordon
706814653d
Simplify dealing with empty files.
...
Why write a parser when you already have a perfectly good one already? :)
2016-04-03 02:07:52 -04:00
Ryan C. Gordon
f9bfaf7435
Initial add of build-linux.sh
2016-04-03 01:23:42 -04:00
Ryan C. Gordon
986140db64
Build on Mac OS X with reported number of CPU cores.
2016-04-03 00:00:04 -04:00
Ryan C. Gordon
1a2ccb8f50
Merge github.com:Croteam-Official/Serious-Engine
...
Conflicts:
Sources/Ecc/Parser.cpp
Sources/Ecc/Scanner.cpp
Sources/Engine/Base/Scanner.cpp
Sources/Engine/GameAgent/GameAgent.cpp
Sources/Engine/Graphics/Gfx_wrapper.h
Sources/Engine/Network/Network.cpp
Sources/Engine/Sound/SoundDecoder.h
Sources/Engine/Templates/HashTableTemplate.cpp
Sources/Engine/Terrain/Terrain.h
Sources/EntitiesMP/ParticleCloudsHolder.es
Sources/EntitiesMP/ParticleCloudsMarker.es
Sources/SeriousSam/CDCheck.h
Sources/SeriousSam/Menu.cpp
Sources/SeriousSam/MenuGadgets.cpp
Sources/SeriousSam/SeriousSam.cpp
Sources/SeriousSam/SplashScreen.cpp
Sources/SeriousSam/StdH.cpp
Sources/SeriousSam/StdH.h
Sources/Shaders/StdH.cpp
2016-04-02 23:56:12 -04:00
Tan Wang Leng
33a3bda3e3
Fix missing endif()
2016-04-02 22:55:53 -04:00
Salamanderrake
cdcf6afc34
Sources/CMakeLists.txt: Added missing find_packge(SDL REQUIRED) to link in the SDL1.2 libraries via ${SDL_LIBRARY} generate variable
...
and added to the target_link_libraries for SeriousSam and SeriousSamDedicated. I don't know not linking the SDL library was
the intended outcome but SeriousSam* was failing to link to libSeriousEngine.a.
2016-04-02 22:33:11 -04:00