Salamanderrake
86b487df9e
CMakelists.txt: Removed my attempt at making Engine a static lib again. plus other small cmake fixes
2016-04-19 04:41:55 -04:00
Salamanderrake
836a4abc43
CMakeLists.txt: Redid the section on c/cxx flags to sepereate them
...
so you can have c++ only flags along with c only flags
fore their respective .c/.cpp builds without conflict.
2016-04-19 04:38:55 -04:00
Ryan C. Gordon
1f7bb24a4d
Merge pull request #26 from DanielGibson/64bit-stuff
...
Some 64bit improvements, lots of 64bit TODOs/STUBBED()
2016-04-18 22:33:58 -04:00
notaz
8bbe4c1d5e
fix build on gcc 4.8
...
some versions of gcc want to inline DitherBitmap(), and this leads to trouble:
Sources/Engine/Graphics/Graphics.cpp:1167: Error: symbol `rowLoopE' is already defined
Sources/Engine/Graphics/Graphics.cpp:1170: Error: symbol `pixLoopEL' is already defined
...
2016-04-18 23:55:41 +03:00
Daniel Gibson
ab5d0a584f
Make Engine/Graphics/Texture.cpp 64bit-clean (hopefully!)
...
((ULONG*)td_ulObject)[iFr] is fishy - and ULONG td_ulObject already is
in an union with ULONG* td_pulObjects, so use td_pulObjects when
appropriate (i.e. if td_ctFrames>1)
Also fixed some checks accordingly.
2016-04-18 20:10:24 +02:00
Daniel Gibson
93daf905f1
EntitiesMP/Common/Particles.cpp: Don't access afStarsPositions[i][3]
...
fix out of bounds accesses of that array.
I guess the same will have to be done for Entities/Common/Particles.cpp
2016-04-18 19:37:02 +02:00
Daniel Gibson
80990f2317
Fix some more warnings, Warning about supressed warnings in cmake
2016-04-18 19:10:52 +02:00
Daniel Gibson
5f5106e363
CShell::[SG]etCurrentWorld() instead of putting it in INDEX console var
...
The code used to store the world pointer as a console variable
"pwoCurrentWorld" of type INDEX (int32) - that won't work for 64bit, so
I added CShell::SetCurrentWorld() and CShell::GetCurrentWorld() and
store it as a pointer.
2016-04-18 18:52:52 +02:00
Joshua Scoggins
a4ca331de9
Added some more todos
2016-04-18 00:13:30 -07:00
Joshua Scoggins
f8cb52f8ad
Delete an unused include
2016-04-17 23:50:00 -07:00
Joshua Scoggins
a8c22df784
Forgot to write Engine to disk :(
2016-04-17 23:49:18 -07:00
Joshua Scoggins
2d8a4df68c
Add the system specific include file
2016-04-17 23:49:02 -07:00
Joshua Scoggins
0c847ab479
Move system specific includes out to a separate file
2016-04-17 23:48:44 -07:00
Joshua Scoggins
8b8ec1f39a
Add some C++11 features into Types.h since C++11 is so cool :D
2016-04-17 23:30:48 -07:00
Joshua Scoggins
c8ab519b77
More big endian targets to detect
2016-04-17 23:26:33 -07:00
Joshua Scoggins
42b2822414
More todo's
2016-04-17 23:20:59 -07:00
Joshua Scoggins
35955d20ba
use stdint.h instead of courage in Types.h
2016-04-17 23:18:23 -07:00
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
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