Changelog 1.1 Alpha (Changes since 0.9 Alpha)
- revisions by Stucuk:
- Added: Support for Q3 type ladders and water(not tested)
- Added: RTCW Scripts(Doesn't include Ai and model support) and Camera support
- Added: Fog
- Added: DDS Support
- Added: Cutscene mode to cameras
- Added: When a basedir is entered for a mod, that mod can read files from the basedir before it checks the Main dir for the files (meaning RTCW mods can work)
- Added: Basic RTCW Menu system(non interactive)
- BugFix: The problem with faces not being drawn when going up stairs has been fixed, Players height wasn't factored in
- BugFix: FSOUND_Update(); removed from Helios_Sound.pas, big fps improvements in most levels
- Changed: Pause now pauses: RTCW Camera's, RTCW Scripts, Movement, Entity's Think, Sounds
- Changed: Shaders can now read from the mod dir, the base dir and the Main dir
Particles You can view the particles in the engine (with no map running, type closemap in console). You can also add particles to maps tho its best when no map is running.
usage: addparticles <name>
Current Particles:
Smoke
Fire
Drip
Fountain
Shower
Sprinkler
Space
Note: Its best to use the launcher and its best to have fullscreen unchecekd the first time its run (incase it crashes)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Just wanted to try it out, but I got many errors that it can't convert floating point values, after loading a level. Seems that you haven't taken into account that there are countries (like germany), where the decimal separator is a "," instead of a ".". So if you could fix this, I could try out helios on my Radeon.
a windows error box? or one from Helios? Some Rtcw fields have ',' in them(Also some fields have text when helios expects a number, i.e Random field should b an integer, yet iv seen some entitys have text in it), but apart from actual fields in the entitys i don't know what would cause this.....
Did u try it with ET? Can u see the console properly? (by just loading heliosapp.exe)
BTW: some doors don't open when u press space, this is due to them being targeted by an entity, which disables this ability (whats the point of havng a button open a door is u can manualy do it....), the problem being that helios can't do the RTCW scripts so some doors are forever closed... (this is where noclip comes in handy )
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
That error has disappeared, but I now get an access violation at adress 0, which much likely hints to a problem with OpenGL. But there are no hints in GLOutput.txt that could help :
When i copy n pasted the texture depth line(and renamed the texture to stencil), i never replaced the 24 with 8 but i soon found it...... tho it doens't do any harm. Stencil buffer currently is unused.
The access violation must b in the rendering bit..... Helios doesn't seem to like ATI.
EDIT: do u ever see a loading screen? Console(Internal)?
EDIT2: hmm, launcher still makes stencildepth 24 even tho its set to b defultly 8.....
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
No, I never see the loading screen. The last thing I get is the same as above, but not with the "cannot convert"-dialog, but with a typicall windows access violation dialog, and after I click that away, I can quit helios by pressing the quit-button.
But could you post the part of the code where you try to get your rendering context? That would make finding the fault easier. Do you manually get a RC, or do you use (if you use our header) CreateRenderingContext?
Registriert: Mi Aug 28, 2002 19:27 Beiträge: 568 Wohnort: Chemnitz / Sachsen
i tried it to with a nvidia gf4 mx 440
i also got an va at 0x00000 ... the last thing the console shows is "Primärer Soundtreiber"
so there could also be a problem with the sound. i have to say that i havent installed my sounddriver right now (i formated yesterday) but then the system would say "no Sound". could there be the reason???
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
I'm sure it's got nothing to do with sound, as it stops at same place as it does for rswm. The last lines I can read are "Primärere Soundtreiber" (primary Sounddriver) and then the name of the driver. After that, I get the AV. I can click it away, then the window stays and I can click Quit or the other buttons.
glEnableClientState(GL_TEXTURE_COORD_ARRAY); // default = vertex, tex1+tex2, no color
end
else begin
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
end;
Im guessing for some odd reason(odd cos it works here) glEnableClientState and glClientActiveTexture arn't set right.
Iv just realised helios's implementation of Opengl is very wierd. Originaly i used Opengl.pas from Delphi 6, so i created a unit called GLstuff which contained:
It uses Opengl15(DelphiGL's v1.4 renamed) and glext(from delphi6). When glext is removed i get access violations where u get them. And without SetupGLProcs setting the procedures i also get a access violation (even tho ReadExtensions; is called when the opengl window is made which is b4 SetupGLProcs is called).
CreateWnd:
Code:
function glCreateWnd : Boolean;
var
wndClass : TWndClass; // Window class
dwStyle : DWORD; // Window styles
dwExStyle : DWORD; // Extended window styles
PixelFormat : GLuint; // Settings for the OpenGL rendering
h_Instance : HINST; // Current instance
pfd : TPIXELFORMATDESCRIPTOR; // Settings for the OpenGL window
begin
InitOpenGL;
SCREEN_WIDTH := HeliosSettings.Width;
SCREEN_HEIGHT := HeliosSettings.Height;
AddToConsole('--- Creating Window ---');
h_Instance := GetModuleHandle(nil); //Grab An Instance For Our Window
ZeroMemory(@wndClass, SizeOf(wndClass)); // Clear the window class structure
with wndClass do begin // Set up the window class
style := CS_HREDRAW or // Redraws entire window if length changes
CS_VREDRAW or // Redraws entire window if height changes
CS_OWNDC; // Unique device context for the window
lpfnWndProc := @WndProc; // Set the window procedure to our func WndProc
hInstance := h_Instance;
hCursor := LoadCursor(0, IDC_ARROW);
hIcon := LoadIcon(hInstance, 'MAINICON');
lpszClassName := 'OpenGL';
end;
if (RegisterClass(wndClass) = 0) then begin// Attemp to register the window class
AddToConsole('Failed to register the window class!');
Result := False;
Exit
end;
AddToConsole('Registered Class...');
//ChangeToFullScreen;
// If we are still in fullscreen then
if (HeliosSettings.Fullscreen) then begin
dwStyle := WS_POPUP or // Creates a popup window
WS_CLIPCHILDREN // Doesn't draw within child windows
or WS_CLIPSIBLINGS; // Doesn't draw within sibling windows
dwExStyle := 0; // Top level window
//ShowCursor(false); // Turn of the cursor (gets in the way)
end
else begin
dwStyle := WS_OVERLAPPEDWINDOW or // Creates an overlapping window
WS_CLIPCHILDREN or // Doesn't draw within child windows
WS_CLIPSIBLINGS; // Doesn't draw within sibling windows
dwExStyle := WS_EX_APPWINDOW or // Top level window
WS_EX_WINDOWEDGE; // Border with a raised edge
//ShowCursor(false); // Turn of the cursor (gets in the way)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Please don't mix our unit with another unit (even if that other unit only loads some extensions). Besides this, there was (some months ago) someone here on the forums with a similar problem. After going over the source, I found out that the window get's resized before OpenGL was initialized, and in that resize function, glViewport was called. But as GL wasn't initialized, glViewport ended up with an AV at adress 0/0, so it may be that it's the same problem as you have. So best thing to do : Define a boolean called IsOpenGLInitialized, set that to true after InitOpenGL is called and in the resize function, first look if IsOpenGLInitialized is true before calling an gl-functions. This way, it should work.
Besides that, I suggest you to use (see our header) CreateRenderingContext instead of getting the pixel format and RC by yourself. That function does all those things and is known to work.
I think the problem is because i never removed all the old code(once glext was compleatly wiped out, it ran fine here with just ur unit). Originaly i used Opengl + GlExt, and when i switched to ur unit i never removed the glext. GlExt is placed normaly after opengl15 in the uses list in most of helios's units, so glext would win all calls to gl stuff......... which sounds logical, glext hasn't been set, its calls are being called when they point to nothing........ what i don't get is why it worked fine on my pc.....
Zitat:
Besides this, there was (some months ago) someone here on the forums with a similar problem. After going over the source, I found out that the window get's resized before OpenGL was initialized
The window is shown after helios is initalized(never gets to the end of helios's initalization on ur pc) so i don't think it will cause any problems, also its resized after Opengl is initalized. (InitOpenGL is called at the top of createwnd)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Looks like your prayers have been heard at gl-valhalla It now works. I'll test some maps and take a look on speed/rendering issues and give some feedback later.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.