Quasar Posted January 9, 2011 Get the new 10th anniversary release of the Eternity Engine here! Win32 Binaries Source code Spare EDFs Release Notes Please note the following: This is the first version of Eternity to be released based on the C++-converted codebase! There are some minor problems with this release of which you might wish to be aware: Portal overlays are *not* quite working fully. We hope to rectify this ASAP. There is no Win9x compatibility in the current release, due to Visual C++ 6.0 throwing a motherloving fit. We would like to release one soon but may have to use a different compiler to produce it. The first public release of the Eternity Engine, v3.29 Public Beta 1, was released 1/8/2001. Today was Eternity's 10th birthday, and a fitting time to release this newest version of the engine. Thank you all for helping to make Eternity a reality. 0 Share this post Link to post
esselfortium Posted January 9, 2011 Awesome! Extradata sectors for custom damage/colormap/flat alignment/etc, Extradata translucent/additive lines, and other cool stuff. Oh, right, and C++! Yay :D 0 Share this post Link to post
Graf Zahl Posted January 9, 2011 Quasar said: There is no Win9x compatibility in the current release, due to Visual C++ 6.0 throwing a motherloving fit. We would like to release one soon but may have to use a different compiler to produce it. That old piece of garbage doesn't compile your code anymore? Its C++ support truly isn't the best. I can remember that it had major issues with some constructs ZDoom uses. What other compilers do you have? If you got VC 2005 there's a small assembly hack you can take from ZDoom. For later compilers I don't think it's possible to let them output Win9x compatible binaries. 0 Share this post Link to post
Quasar Posted January 9, 2011 Graf Zahl said:That old piece of garbage doesn't compile your code anymore? Its C++ support truly isn't the best. I can remember that it had major issues with some constructs ZDoom uses. What other compilers do you have? If you got VC 2005 there's a small assembly hack you can take from ZDoom. For later compilers I don't think it's possible to let them output Win9x compatible binaries. The first problem is that it has different overload resolution rules which don't recognize types as being equivalent in the same way. This is a damned-if-you-do, damned-if-you-don't problem, since other compilers will see the methods as ambiguous overloads. The other problem is one I cannot understand at ALL. It is complaining about constructs such as:static default_t defaults[] = { { fields, in, here }, ... }; The error given makes it seem that the compiler believes defaults is not in fact an array, but one gigantic default_t. For every initial field in the static initializers, it complains "No conversion from <whatever the first field is> to default_t" - absolute nonsense. I can try to acquire 2005, although your mentioning hacks as being necessary is not encouraging >_> 0 Share this post Link to post
Quasar Posted January 9, 2011 printz said:Portal overlays? How do I use them? Via ExtraData flag fields, but I'd seriously hold off on it for the moment, as they have some kind of serious glitch that SoM hasn't been able to figure out yet. Once they're working, I will add their documentation to the ExtraData page on the wiki... 0 Share this post Link to post
Graf Zahl Posted January 9, 2011 Quasar said:The error given makes it seem that the compiler believes defaults is not in fact an array, but one gigantic default_t. For every initial field in the static initializers, it complains "No conversion from <whatever the first field is> to default_t" - absolute nonsense. I think ZDoom ran into the same problem as this one. It's clearly a compiler bug and obviously was fixed in MS's next compiler release. Quasar said:I can try to acquire 2005, although your mentioning hacks as being necessary is not encouraging >_> It's not that bad. All the code needs to do is to override one imported function that doesn't exist in Windows95 but is references by the CRT. All ZDoom does is adding this .asm file: ; The Visual C++ CRT unconditionally links to IsDebuggerPresent. ; This function is not available under Windows 95, so here is a ; lowlevel replacement for it. extern __imp__GetModuleHandleA@4 extern __imp__GetProcAddress@8 SECTION .data global __imp__IsDebuggerPresent@0 __imp__IsDebuggerPresent@0: dd IsDebuggerPresent_Check SECTION .rdata StrKERNEL32: db "KERNEL32",0 StrIsDebuggerPresent: db "IsDebuggerPresent",0 SECTION .text IsDebuggerPresent_No: xor eax,eax ret IsDebuggerPresent_Check: push StrKERNEL32 call [__imp__GetModuleHandleA@4] push StrIsDebuggerPresent push eax call [__imp__GetProcAddress@8] test eax,eax jne near .itis mov eax,IsDebuggerPresent_No .itis: mov [__imp__IsDebuggerPresent@0],eax jmp eax 0 Share this post Link to post
Doom_user Posted January 9, 2011 I get this error message when I try to start Eternity 3.40.00. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. My operating system is fully updated 32-bit Windows XP Professional with Service Pack 3. 0 Share this post Link to post
Csonicgo Posted January 9, 2011 And here is the first video of Rebirth.... DEATH BFG 2.0 RAAAAGH! 0 Share this post Link to post
printz Posted January 9, 2011 Quasar said:Via ExtraData flag fields, but I'd seriously hold off on it for the moment, as they have some kind of serious glitch that SoM hasn't been able to figure out yet. Once they're working, I will add their documentation to the ExtraData page on the wiki... Yay. I'm curious how a portal overlay looks. 0 Share this post Link to post
esselfortium Posted January 9, 2011 printz said:Yay. I'm curious how a portal overlay looks. Like a translucent line, but on the floor. :P 0 Share this post Link to post
RjY Posted January 9, 2011 Quasar: congratulations on your successful language transition. As I said I'm not entirely convinced it wasn't an overreaction, but I seem to recall you said you wanted to do some stuff with C++ features anyway, so I guess it's all good. I'm interested to know what SoM thinks of all this as I don't think I've seen him express an opinion on choice of language. Personally I need to find some kind of C++ for C programmers guide because I have only the vaguest idea of what C++ gives you over C... 0 Share this post Link to post
Quasar Posted January 9, 2011 RjY said:Quasar: congratulations on your successful language transition. As I said I'm not entirely convinced it wasn't an overreaction, but I seem to recall you said you wanted to do some stuff with C++ features anyway, so I guess it's all good. I'm interested to know what SoM thinks of all this as I don't think I've seen him express an opinion on choice of language. Personally I need to find some kind of C++ for C programmers guide because I have only the vaguest idea of what C++ gives you over C... The problem wasn't that C99 limitations couldn't be worked around in the short term, but that working around them in the long term while continuing to develop designs that ran counter to them would probably not be sustainable. And besides that, it was clouding what would otherwise have been elegant implementations with low-level pointer juggling and type casts. C++ offers two main things: classes with polymorphic inheritance, and templates for generic programming. Classes are just an extension of C's structs, which add the ability to have access control (public/protected/private), inheritance, encapsulation of methods (functions) with the data on which they act (along with a "this" pointer to use inside them that implicitly references the current object), constructors and destructors for (de)initialization, and most importantly, the "virtual" function call mechanism - meaning the method called is selected based on the most-derived type of an object, at runtime, and not the type of the pointer or reference it was called through. Templates allow a piece of code (a class or function) to be defined in a type-agnostic manner. For example:template<typename T> T addTwo(T &a, T &b) { return a + b; } You can call that template function on any two objects which implement an operator + that returns T or T &. And that includes fundamental types like int or double. (unary & represents a reference, btw, which is just an opaque pointer which isn't allowed to ever be NULL). 0 Share this post Link to post
printz Posted January 9, 2011 esselfortium said:Like a translucent line, but on the floor. :P Could make for some badass gateways to the netherworld (literally). 0 Share this post Link to post
Graf Zahl Posted January 9, 2011 esselfortium said:Like a translucent line, but on the floor. :P So it's just drawing a translucent flat on a portal plane? 0 Share this post Link to post
Xaser Posted January 9, 2011 Great timing here -- No need to link all the Hacx guys to an SVN version now. :P I brought this up in IRC, but I may as well post it since it's relevant-ish: I've got an example wad that shows off a few compatible features between ZDoom and Eternity, the new ExtraData-based translucency (additive as well ;) being one of them. It's currently using Hacx 2.0 textures, but Doomifying it would be easy enough. Anyone here interested in it? 0 Share this post Link to post
printz Posted January 9, 2011 Dumb question: What about transitioning to C# now? :) 0 Share this post Link to post
Graf Zahl Posted January 9, 2011 Why? C# can't even be compiled into native machine code. 0 Share this post Link to post
Gez Posted January 9, 2011 Doom_user said:I get this error message when I try to start Eternity 3.40.00. My operating system is fully updated 32-bit Windows XP Professional with Service Pack 3. I've done a search and replace of .c by .cpp in my project file and EE compiled successfully and seems to work fine, so I uploaded r1412 to the DRD Team SVN site. It might work better for you because it's compiled with MSVC++ 2005. 0 Share this post Link to post
Doom_user Posted January 9, 2011 Gez said:I've done a search and replace of .c by .cpp in my project file and EE compiled successfully and seems to work fine, so I uploaded r1412 to the DRD Team SVN site. It might work better for you because it's compiled with MSVC++ 2005. Thanks. r1412 works perfectly. 0 Share this post Link to post
Quasar Posted January 9, 2011 Graf Zahl said:So it's just drawing a translucent flat on a portal plane? Yeah "just" like it's no kind of highly requested, advanced feature or anything... 0 Share this post Link to post
Graf Zahl Posted January 9, 2011 The name sounded like it's more... :P 0 Share this post Link to post
esselfortium Posted January 9, 2011 Graf Zahl said:The name sounded like it's more... :P It gives automated blowjobs too. 0 Share this post Link to post
ducon Posted January 9, 2011 I’m trying to compile EE, ./autogen.sh does not complain, but make does: > LANG="C";make Making all in source make[1]: Entering directory `/somewhere/eternity/ee3.40.00-src/source' Making all in Confuse make[2]: Entering directory `/somewhere/eternity/ee3.40.00-src/source/Confuse' make[2]: *** No rule to make target `confuse.o', needed by `libetconfuse.a'. Stop. make[2]: Leaving directory `/somewhere/eternity/ee3.40.00-src/source/Confuse' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/somewhere/eternity/ee3.40.00-src/source' make: *** [all-recursive] Error 1 Did I forget something? 0 Share this post Link to post
Csonicgo Posted January 9, 2011 ducon said:I’m trying to compile EE, ./autogen.sh does not complain, but make does: > LANG="C";make Making all in source make[1]: Entering directory `/somewhere/eternity/ee3.40.00-src/source' Making all in Confuse make[2]: Entering directory `/somewhere/eternity/ee3.40.00-src/source/Confuse' make[2]: *** No rule to make target `confuse.o', needed by `libetconfuse.a'. Stop. make[2]: Leaving directory `/somewhere/eternity/ee3.40.00-src/source/Confuse' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/somewhere/eternity/ee3.40.00-src/source' make: *** [all-recursive] Error 1 Did I forget something? We're using cmake now. it's a lot easier. Mayyybe I should have put that in the news. 0 Share this post Link to post
Quasar Posted January 10, 2011 Csonicgo said:We're using cmake now. it's a lot easier. Mayyybe I should have put that in the news. Oh yeah. I knew I forgot to fix something before release... Basically the automake system hasn't been updated yet. My bad ;) 0 Share this post Link to post
ducon Posted January 10, 2011 So, I may wait for the next release? And please change the README too, some old fashioned guys still read this stuff. ;) 0 Share this post Link to post
RjY Posted January 12, 2011 Just noticed this. CMakeLists needs a version number bumpIndex: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 1418) +++ CMakeLists.txt (working copy) @@ -48,7 +48,7 @@ SET (CPACK_PACKAGE_VENDOR "Team Eternity") SET (CPACK_PACKAGE_CONTACT "Team Eternity <haelyjd@hotmail.com>") SET (CPACK_PACKAGE_VERSION_MAJOR "3") -SET (CPACK_PACKAGE_VERSION_MINOR "37") +SET (CPACK_PACKAGE_VERSION_MINOR "40") SET (CPACK_PACKAGE_VERSION_PATCH "00") SET (CPACK_PACKAGE_NAME "Eternity Engine") SET (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") 0 Share this post Link to post