Commit Graph

193 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Ryan C. Gordon
67e940def8 Merge pull request #17 from RocketersAlex/linux-port
GameAgent - list servers bugfix.
2016-04-12 00:12:51 -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
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
f37df71029 Float fest\! 2016-04-07 18:13:50 +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
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
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
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
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
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
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
Salamanderrake
2be26952c7 Case Issue with #include statement.
* Gfx_wrapper.cpp: two #include statemenst with incorrect case.

* Fixed an empty line issue
2016-04-02 01:12:25 -04:00
Salamanderrake
4ce00bca08 Statistics_internal.h: Incorrect case as its Statistics_Internal.h on disk. 2016-04-02 01:11:53 -04:00
Ryan C. Gordon
49b5163cc9 Regenerated parsers and scanners. 2016-04-01 15:17:48 -04:00
Ryan C. Gordon
0d426d5998 Fixed up some StdH includes. 2016-04-01 14:04:24 -04:00
Ryan C. Gordon
3e59daa5e6 Fixed function signature for yyerror to take a const char *. 2016-04-01 12:19:18 -04:00
Ryan C. Gordon
5aea1f7c4d Untangle the symbols in the engine's parser and the Ska parser. 2016-04-01 01:49:13 -04:00
Ryan C. Gordon
0f6b9ca1c1 We actually get NULL here, so these stay for now, Clang warnings be damned. 2016-03-31 21:54:25 -04:00
Ryan C. Gordon
88c41117f5 Fill in some stuff that is needed to compile.
I had better versions of this stuff, which I still need to re-merge.
2016-03-31 21:53:54 -04:00
Ryan C. Gordon
887bc474e0 Deal with other things that are optimizing out instead of linking properly. 2016-03-31 15:48:48 -04:00
Ryan C. Gordon
7c9d29ad1a Naturally, there are two files with inline asm with an "mmShift" symbol. :) 2016-03-31 15:48:48 -04:00
Ryan C. Gordon
ee754e7edf Made static variables that inline asm needs to touch non-static.
I dislike having to do this, but Clang sees them as unused and removes them
from the object file, causing linking to fail.

The real solution here is to remove all the assembly code because it's 2016
and this game doesn't have to run on 133MHz Pentium now.  :)
2016-03-31 13:04:57 -04:00
Ryan C. Gordon
2668cdc44f Fix up some mismerges and get the OpenGL code to compile again. 2016-03-31 12:26:43 -04:00
Ryan C. Gordon
c2be372822 Some work to get Stream.cpp compiling. 2016-03-31 12:25:53 -04:00
Ryan C. Gordon
fbfef87ce0 Fixed a mismerge. 2016-03-31 12:25:40 -04:00
Ryan C. Gordon
75b824ddf8 Removed the exception handling code from CTStream.
I think this is a leftover from the mmap()-like code that used to be
in the engine, but now it's a lot of complexity to basically test this:

- Was this a memory access violation?
- If no, crash.
- If yes:
  - Was it part of a CTStream?
  - If no, crash.
  - If yes, crash.

Instead, let's just crash.   :)

(If I'm misunderstanding this, just roll back from revision control.)
2016-03-31 12:22:55 -04:00
RocketersAlex
c5f5d72e3f Update MSLegacy.h Network.cpp GameAgent.cpp 2016-03-31 05:43:38 +03:00
Ryan C. Gordon
105bc12d64 Bunch more work on getting this to compile. Down to Stream and Gfx_OpenGL now. 2016-03-30 13:41:30 -04:00
Ryan C. Gordon
7d118bd249 First attempt at porting GameAgent code. 2016-03-30 11:00:29 -04:00
Ryan C. Gordon
8ea00b12d2 More work on getting this to compile. 2016-03-30 11:00:01 -04:00
Ryan C. Gordon
4f061d916c Adding regenerated parsers so they'll stop spamming my diffs. 2016-03-30 10:59:17 -04:00
Ryan C. Gordon
888b35dbca Mismerge fix. 2016-03-30 10:56:56 -04:00
RocketersAlex
0d8f7da318 Fixed SeriousSam and GameAgent bugs 2016-03-30 16:54:30 +03:00
Ryan C. Gordon
2e7af8cf00 More mismerge corrections and other fixes to get this closer to compiling. 2016-03-30 02:01:02 -04:00
Ryan C. Gordon
28a8b5cb2e Various patches to get this closer to compiling again. 2016-03-30 01:51:52 -04:00
Ryan C. Gordon
18b339a2b6 Uncommented to include Terrain.h. Let's see what happens. 2016-03-30 01:25:58 -04:00
Ryan C. Gordon
2f10f864d8 Silence a whole bunch of warnings about string literals vs non-const char *. 2016-03-29 12:51:34 -04:00
Ryan C. Gordon
a4000c69a8 Clean out a bunch of compiler warnings. 2016-03-29 12:51:33 -04:00
Ryan C. Gordon
24cb244d43 First attempt to hand-merge Ryan's Linux and Mac OS X port.
This was a _ton_ of changes, made 15 years ago, so there are probably some
problems to work out still.

Among others: Engine/Base/Stream.* was mostly abandoned and will need to be
re-ported.

Still, this is a pretty good start, and probably holds a world record for
lines of changes or something.  :)
2016-03-28 23:46:13 -04:00
zcaliptium
ef0b970490 Fixes 2016-03-22 21:03:12 +03:00
SLAwww
b2745c617f Removed more generated files 2016-03-13 02:05:30 +02:00
Matt Lee
a4af93fa31 Add GPL header to files 2016-03-11 18:20:51 -06:00
SLAwww
a7af6eb20b Removing generated files 2016-03-11 16:47:14 +02:00
SLAwww
9d8b787be2 Uploading full engine sources 2016-03-11 15:57:17 +02:00