Page 1 of 3

H-Craft Championship Open Source

Posted: Wed Feb 25, 2015 2:41 pm
by CuteAlien
Hi everyone!

As some already knew I've been working on open-sourcing our Sci-Fi racer H-Craft Championship for a while.
The game uses Irrlicht (obviously) - and runs on Windows, Linux and Android.
The license is zlib, same as in Irrlicht, so you can use all the code in your own games!
Note that the media-files (textures and music) are restricted to private use.

All infos about it can be found on this page: http://www.irrgheist.com/hcraftsource.htm

Any questions about the sources, please use this thread.

I hope it will be of some use to you - have fun playing with the sources.

Re: H-Craft Championship Open Source

Posted: Wed Feb 25, 2015 3:58 pm
by Nadro
Congratulations Michael, You've done a great work! Source code of this game should be helpful for a lot of developers. IMHO it's one of the best open source game. Zlib license is also an advantage :)

Re: H-Craft Championship Open Source

Posted: Wed Mar 04, 2015 3:47 pm
by christianclavet
Thanks CuteAlien!

Re: H-Craft Championship Open Source

Posted: Wed Mar 11, 2015 1:23 pm
by polylux
Nice move, CuteAlien! :)
By the way, browsing the code can be quite entertaining.

Code: Select all

int GhostRecordSettings::CalcChecksum()
{
    // Man - how I hate it to get back to years old code and all I find is a stupid comment like that *sigh*
    // I guess I just used 2 random numbers.
    return ((mGhostType + mTime) * 3771) | 4711; // this cryptographic formula will definitly revolutionize the world!!!
}
I totally know what you mean in the first two comment lines ;)

Re: H-Craft Championship Open Source

Posted: Wed Mar 11, 2015 9:46 pm
by hendu
Not even primes, I expect better :P

Re: H-Craft Championship Open Source

Posted: Wed Mar 11, 2015 9:54 pm
by CuteAlien
Pfff, every cryptographer can use primes - where's the revolution in that ;-)

Re: H-Craft Championship Open Source

Posted: Thu Oct 10, 2019 10:32 pm
by kas1e
@CuteAlien
Oh what a surprise that you are author of H-Craft !

Trying to port it to amigaos4 now, but firstly want to make latest sources works for win32/mingw (so to understand how all done and how all should be , etc).

And for now fighting for good few hours with latest sources & media from the repo , and all the time on running i have that:

Code: Select all

 
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_rotorwind.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_rotorwind.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_rotorwind.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_hc_fx_teleport.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_blobshadow01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_blobshadow01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_blobshadow01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Could not load texture: D:/msys64/work/hcraft_test/media/textures/ALPHA_race_shipstream01.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/ui/selectH1.tga
Unsupported TGA format: D:/msys64/work/hcraft_test/media/ui/selectH1.tga
Could not load texture: D:/msys64/work/hcraft_test/media/ui/selectH1.tga
 
The released binary version for win32 does not have that issue of course. Everything works there.

I even tried to get the media data from binary-release (where they 100% ok) : and still same issue.

I checked, and that message come from Irrlicht itself. So question is : can it be that Irrlicht in H-Craft repo was updated , but wasn't tested with latest h-craft sources, or , its just me doing something wrong there ?:)

Its all looks like or i just build irrlicht which come with h-craft somehow wrong (but then, what can be wrong there), or something else happens ..

Maybe you have an idea about ..

Thanks !

Re: H-Craft Championship Open Source

Posted: Thu Oct 10, 2019 11:53 pm
by CuteAlien
Very sorry, I haven't compiled that in a long time :-( Considered it recently when I found out that it no longer runs on Debian 10, but every time I pause a few years things no longer work when coming back *sigh* (and always enough tasks to work on...).Will have to test myself. But the Irrlicht in the repository should have been tested in the past... I think.

Maybe different gcc/g++ version messing up things again. My first guess was that my Irrlicht version there is so old it doesn't have yet the fix for the struct packing changes which were needed for gcc 4.7 on MinGW. That could have messed up the loading of the magic-key in tga files. But looking at the changes.txt in there it should already be in there.

*sigh* there isn't even a good reason to have tga files, we just didn't have enough experience when we started out. Could use png's instead.

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 12:33 am
by CuteAlien
One hint - there is a file build.txt in the doc folder.

I just did a quick test on Linux. I got compile-errors on first test (in Irrlicht I needed -Wno-narrowing to avoid some errors).
And I had to clean and rebuild H-Craft once as it failed on first try (but likely because I still had .obj files around from older g++ from before my recent system update). But works now without troubles - including loading those .tga's.
So I guess a MinGW problem.

Which g++ version are you running?

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 10:59 am
by kas1e
@CuteAlien
One hint - there is a file build.txt in the doc folder.
Yeah i read it all, but as i have no codeblocks, i just build all manually. I just go to lib/irrlicht/source/Irrlicht , and do "make win32 NDEBUG=1".

Then , i compile all the H-Craft objects manually, just like this:

Code: Select all

 
cd src/
mkdir objs
 
 
gcc -I/mingw32/include/freetype2/ -I../libs/irrlicht/include -c -O2 CGUITTFont.cpp -o objs/CGUITTFont.obj
gcc -I../libs/irrlicht/include -c -O2 CGUITextSlider.cpp -o objs/CGUITextSlider.obj
gcc -I../libs/irrlicht/include -c -O2 CLMOMeshFileLoader.cpp -o objs/CLMOMeshFileLoader.obj
gcc -I../libs/irrlicht/include -c -O2 ai_track.cpp -o objs/ai_track.obj
gcc -I../libs/irrlicht/include -c -O2 app_tester.cpp -o objs/app_tester.obj
gcc -I../libs/irrlicht/include -c -O2 camera.cpp -o objs/camera.obj
gcc -I../libs/irrlicht/include -c -O2 championship.cpp -o objs/championship.obj
gcc -I../libs/irrlicht/include -c -O2 config.cpp -o objs/config.obj
gcc -I../libs/irrlicht/include -c -O2 controller.cpp -o objs/controller.obj
gcc -I../libs/irrlicht/include -c -O2 convert_utf.c -o objs/convert_utf.obj
gcc -I../libs/irrlicht/include -c -O2 device_joystick.cpp -o objs/device_joystick.obj
gcc -I../libs/irrlicht/include -c -O2 device_joystick_settings.cpp -o objs/device_joystick_settings.obj
gcc -I../libs/irrlicht/include -c -O2 device_keyboard.cpp -o objs/device_keyboard.obj
gcc -I../libs/irrlicht/include -c -O2 device_mouse.cpp -o objs/device_mouse.obj
gcc -I../libs/irrlicht/include -c -O2 device_touch.cpp -o objs/device_touch.obj
gcc -I../libs/irrlicht/include -c -O2 device_touch_settings.cpp -o objs/device_touch_settings.obj
gcc -I../libs/irrlicht/include -c -O2 editor.cpp -o objs/editor.obj
gcc -I../libs/irrlicht/include -c -O2 event_receiver_base.cpp -o objs/event_receiver_base.obj
gcc -I/mingw32/include/freetype2/ -I../libs/irrlicht/include -c -O2 font_manager.cpp -o objs/font_manager.obj
gcc -I../libs/irrlicht/include -c -O2 game.cpp -o objs/game.obj
gcc -I../libs/irrlicht/include -c -O2 grid_triangle_selector.cpp -o objs/grid_triangle_selector.obj
gcc -I../libs/irrlicht/include -c -O2 gui.cpp -o objs/gui.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialog.cpp -o objs/gui_dialog.obj
gcc -I../libs/irrlicht/include -c -O2 helper_file.cpp -o objs/helper_file.obj
gcc -I../libs/irrlicht/include -c -O2 helper_irr.cpp -o objs/helper_irr.obj
gcc -I../libs/irrlicht/include -c -O2 helper_math.cpp -o objs/helper_math.obj
gcc -I../libs/irrlicht/include -c -O2 helper_str.cpp -o objs/helper_str.obj
gcc -I../libs/irrlicht/include -c -O2 helper_xml.cpp -o objs/helper_xml.obj
gcc -I../libs/irrlicht/include -c -O2 highscores.cpp -o objs/highscores.obj
gcc -I../libs/irrlicht/include -c -O2 hover.cpp -o objs/hover.obj
gcc -I../libs/irrlicht/include -c -O2 input_device.cpp -o objs/input_device.obj
gcc -I../libs/irrlicht/include -c -O2 input_device_manager.cpp -o objs/input_device_manager.obj
gcc -I../libs/irrlicht/include -c -O2 irrlicht_manager.cpp -o objs/irrlicht_manager.obj
gcc -I../libs/irrlicht/include -c -O2 keycode_strings.cpp -o objs/keycode_strings.obj
gcc -I../libs/irrlicht/include -c -O2 level.cpp -o objs/level.obj
gcc -I../libs/irrlicht/include -c -O2 level_manager.cpp -o objs/level_manager.obj
gcc -I../libs/irrlicht/include -c -O2 logging.cpp -o objs/logging.obj
gcc -I../libs/irrlicht/include -c -O2 main.cpp -o objs/main.obj
gcc -I../libs/irrlicht/include -c -O2 mesh_texture_loader.cpp -o objs/mesh_texture_loader.obj
gcc -I../libs/irrlicht/include -c -O2 music_manager.cpp -o objs/music_manager.obj
gcc -I../libs/irrlicht/include -c -O2 nn.cpp -o objs/nn.obj
gcc -I../libs/irrlicht/include -c -O2 node_manager.cpp -o objs/node_manager.obj
gcc -I../libs/irrlicht/include -c -O2 ogg_stream.cpp -o objs/ogg_stream.obj
gcc -I../libs/irrlicht/include -c -O2 ogles2_materials.cpp -o objs/ogles2_materials.obj
gcc -I../libs/irrlicht/include -c -O2 ov_callbacks.cpp -o objs/ov_callbacks.obj
gcc -I../libs/irrlicht/include -c -O2 physics.cpp -o objs/physics.obj
gcc -I../libs/irrlicht/include -c -O2 player.cpp -o objs/player.obj
gcc -I../libs/irrlicht/include -c -O2 profiles.cpp -o objs/profiles.obj
gcc -I../libs/irrlicht/include -c -O2 random.cpp -o objs/random.obj
gcc -I../libs/irrlicht/include -c -O2 recorder.cpp -o objs/recorder.obj
gcc -I../libs/irrlicht/include -c -O2 rivalsmode.cpp -o objs/rivalsmode.obj
gcc -I../libs/irrlicht/include -c -O2 sound_openal.cpp -o objs/sound_openal.obj
gcc -I../libs/irrlicht/include -c -O2 sound_settings.cpp -o objs/sound_settings.obj
gcc -I../libs/irrlicht/include -c -O2 start_browser.cpp -o objs/start_browser.obj
gcc -I../libs/irrlicht/include -c -O2 streaming.cpp -o objs/streaming.obj
gcc -I../libs/irrlicht/include -c -O2 string_table.cpp -o objs/string_table.obj
gcc -I../libs/irrlicht/include -c -O2 timer.cpp -o objs/timer.obj
gcc -I../libs/irrlicht/include -c -O2 track_marker.cpp -o objs/track_marker.obj
 
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_ai.cpp -o objs/gui_ai.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_controller_display.cpp -o objs/gui_controller_display.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_developer_settings.cpp -o objs/gui_developer_settings.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_dlg_okcancel.cpp -o objs/gui_dlg_okcancel.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_editor.cpp -o objs/gui_editor.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_game.cpp -o objs/gui_game.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_helper.cpp -o objs/gui_helper.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_hud.cpp -o objs/gui_hud.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_intro.cpp -o objs/gui_intro.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_levelmanager.cpp -o objs/gui_levelmanager.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_analog.cpp -o objs/gui_menu_analog.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_arcade.cpp -o objs/gui_menu_arcade.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_championship.cpp -o objs/gui_menu_championship.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_championship_progress.cpp -o objs/gui_menu_championship_progress.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_championship_winner.cpp -o objs/gui_menu_championship_winner.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_controls.cpp -o objs/gui_menu_controls.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_credits.cpp -o objs/gui_menu_credits.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_gameend.cpp -o objs/gui_menu_gameend.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_gameend_champ.cpp -o objs/gui_menu_gameend_champ.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_gameend_rivals.cpp -o objs/gui_menu_gameend_rivals.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_graphics.cpp -o objs/gui_menu_graphics.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_highscores.cpp -o objs/gui_menu_highscores.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_hover_unlocked.cpp -o objs/gui_menu_hover_unlocked.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_keyboard.cpp -o objs/gui_menu_keyboard.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_licenses.cpp -o objs/gui_menu_licenses.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_loadingscreen.cpp -o objs/gui_menu_loadingscreen.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_main.cpp -o objs/gui_menu_main.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_nagscreen.cpp -o objs/gui_menu_nagscreen.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_newprofile.cpp -o objs/gui_menu_newprofile.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_options.cpp -o objs/gui_menu_options.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_pause.cpp -o objs/gui_menu_pause.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_profiles.cpp -o objs/gui_menu_profiles.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_replaytheatre.cpp -o objs/gui_menu_replaytheatre.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_rivals.cpp -o objs/gui_menu_rivals.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_rivals_score.cpp -o objs/gui_menu_rivals_score.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_selecthover.cpp -o objs/gui_menu_selecthover.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_timeattack.cpp -o objs/gui_menu_timeattack.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_menu_tutorial3.cpp -o objs/gui_menu_tutorial3.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_modellist.cpp -o objs/gui_modellist.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_nodemanager.cpp -o objs/gui_nodemanager.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_touch.cpp -o objs/gui_touch.obj
gcc -I../libs/irrlicht/include -c -O2 gui_dialogs/gui_user_controls.cpp -o objs/gui_user_controls.obj
 
gcc -I../libs/irrlicht/include -c -O2 mobile/advert_admob.cpp -o objs/advert_admob.obj
gcc -I../libs/irrlicht/include -c -O2 mobile/android_tools.cpp -o objs/android_tools.obj
gcc -I../libs/irrlicht/include -c -O2 mobile/app_restrictions.cpp -o objs/app_restrictions.obj
gcc -I../libs/irrlicht/include -c -O2 mobile/billing_googleplay.cpp -o objs/billing_googleplay.obj
 
gcc -I../libs/irrlicht/include -c -O2 tinyxml/tinystr.cpp -o objs/tinystr.obj
gcc -I../libs/irrlicht/include -c -O2 tinyxml/tinyxml.cpp -o objs/tinyxml.obj
gcc -I../libs/irrlicht/include -c -O2 tinyxml/tinyxmlerror.cpp -o objs/tinyxmlerror.obj
gcc -I../libs/irrlicht/include -c -O2 tinyxml/tinyxmlparser.cpp -o objs/tinyxmlparser.obj
 
Then for linking just:

Code: Select all

 
g++ -o hcraft \
objs/CGUITTFont.obj objs/CGUITextSlider.obj objs/CLMOMeshFileLoader.obj objs/ai_track.obj objs/app_tester.obj objs/camera.obj objs/championship.obj objs/config.obj objs/controller.obj objs/convert_utf.obj \
objs/device_joystick.obj objs/device_joystick_settings.obj objs/device_keyboard.obj objs/device_mouse.obj objs/device_touch.obj objs/device_touch_settings.obj objs/editor.obj objs/event_receiver_base.obj \
objs/font_manager.obj objs/game.obj objs/grid_triangle_selector.obj objs/gui.obj objs/gui_dialog.obj objs/helper_file.obj objs/helper_irr.obj objs/helper_math.obj objs/helper_str.obj objs/helper_xml.obj \
objs/highscores.obj objs/hover.obj objs/input_device.obj objs/input_device_manager.obj objs/irrlicht_manager.obj objs/keycode_strings.obj objs/level.obj objs/level_manager.obj objs/logging.obj objs/main.obj \
objs/mesh_texture_loader.obj objs/music_manager.obj objs/nn.obj objs/node_manager.obj objs/ogg_stream.obj objs/ogles2_materials.obj objs/ov_callbacks.obj objs/physics.obj objs/player.obj objs/profiles.obj \
objs/random.obj objs/recorder.obj objs/rivalsmode.obj objs/sound_openal.obj objs/sound_settings.obj objs/start_browser.obj objs/streaming.obj objs/string_table.obj objs/timer.obj objs/track_marker.obj \
objs/gui_ai.obj objs/gui_controller_display.obj objs/gui_developer_settings.obj objs/gui_dlg_okcancel.obj objs/gui_editor.obj objs/gui_game.obj objs/gui_helper.obj objs/gui_hud.obj objs/gui_intro.obj \
objs/gui_levelmanager.obj objs/gui_menu_analog.obj objs/gui_menu_arcade.obj objs/gui_menu_championship.obj objs/gui_menu_championship_progress.obj objs/gui_menu_championship_winner.obj objs/gui_menu_controls.obj \
objs/gui_menu_credits.obj objs/gui_menu_gameend.obj objs/gui_menu_gameend_champ.obj objs/gui_menu_gameend_rivals.obj objs/gui_menu_graphics.obj objs/gui_menu_highscores.obj objs/gui_menu_hover_unlocked.obj \
objs/gui_menu_keyboard.obj objs/gui_menu_licenses.obj objs/gui_menu_loadingscreen.obj objs/gui_menu_main.obj objs/gui_menu_nagscreen.obj objs/gui_menu_newprofile.obj objs/gui_menu_options.obj objs/gui_menu_pause.obj \
objs/gui_menu_profiles.obj objs/gui_menu_replaytheatre.obj objs/gui_menu_rivals.obj objs/gui_menu_rivals_score.obj objs/gui_menu_selecthover.obj objs/gui_menu_timeattack.obj objs/gui_menu_tutorial3.obj \
objs/gui_modellist.obj objs/gui_nodemanager.obj objs/gui_touch.obj objs/gui_user_controls.obj objs/advert_admob.obj objs/android_tools.obj objs/app_restrictions.obj objs/billing_googleplay.obj \
objs/tinystr.obj objs/tinyxml.obj objs/tinyxmlerror.obj objs/tinyxmlparser.obj ../libs/irrlicht/lib/Win32-gcc/libIrrlicht.a  -lSDL -lopenal -lalut  -lvorbisfile -lvorbis -logg -lfreetype -lopengl32
 
Maybe the way i do it broke something.. Maybe some missing gcc optimisation should be in place as well to make loading of tga works ? But i tried it also to build everything as done in *.cbp : i.e. with those flags:

Code: Select all

 
 -march=i686 -fexpensive-optimizations -O3 -Wall -W -fno-strict-aliasing -Wno-unused -DNDEBUG -D__GNUWIN32__ -DWIN32 -DHOVER_RELEASE 
 
But issue still there :(
I got compile-errors on first test (in Irrlicht I needed -Wno-narrowing to avoid some errors).
Yeah, i have them too and fix it the same. That error happens for aesGladman/sha2.cpp (seems was changed since 1.8.4, at least sha2.h for sure have different size).
Which g++ version are you running?
My gcc is i686-w64-mingw32 7.3.0
*sigh* there isn't even a good reason to have tga files, we just didn't have enough experience when we started out. Could use png's instead.
I can try to just manually convert all the .tga inside of media directory to .png . Or there is some code in h-craft which want to deal with tga somehow instead of handling via irrlicht ? I mean, maybe it will just works once conver tga to pngs ?

Will try to rebuild everything from scratch again just in case

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 11:28 am
by CuteAlien
You could install Code::Blocks for a quick test. It's free and open-source. Although except for other compile-flags it should not make a difference as C::B also uses the installed g++ compiler. But should be quick to do (install and then click compile on 2 project files).

Just replacing tga by png is likely not working, you would also have to replace the filenames in the models which try to load the texture. Or maybe not - could be I even try loading same file with other file-endings (I remember I did something like that once for some reason... not sure if that's still in there).

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 11:39 am
by kas1e
You could install Code::Blocks for a quick test. It's free and open-source. Although except for other compile-flags it should not make a difference as C::B also uses the installed g++ compiler. But should be quick to do (install and then click compile on 2 project files).
Will try now
Just replacing tga by png is likely not working, you would also have to replace the filenames in the models which try to load the texture. Or maybe not - could be I even try loading same file with other file-endings (I remember I did something like that once for some reason... not sure if that's still in there).
I just tried to convert ALPHA_race_shipstream01.tga to ALPHA_race_shipstream01.png, and replace in all .mtl files all instances of ALPHA_race_shipstream01.tga on ALPHA_race_shipstream01.png : it even didn't go futher profiling call , even didn't see that irrlich started , and then crashes :) So probabaly something in code exactly .tga is need it.

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 11:54 am
by CuteAlien
I just realize I use MinGW32. Could be I never tried to create a 64-bit version on Windows (I use 64-bit on Linux, but on Windows there was was no problem just keeping it with 32-bit, so I never changed that).

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 1:12 pm
by CuteAlien
Setting up a sane 64-bit environment for MinGW seems to be a bit more work (first test I ended up without a working debugger, but likely just because I still used an old installation). But at least I could test one thing - when I get current Irrlicht + Examples compiled in 64 bit there I can still load the TGA files from H-Craft.

Re: H-Craft Championship Open Source

Posted: Fri Oct 11, 2019 2:43 pm
by kas1e
@Cutealien
My mingw also 32bit one (i686-w64-mingw32) , so that ok then

I also installed code::blocks, and rebuild fresh version of h-craft's irrlicht and h-craft itself : still same issue.

Then, made some experiments, and found, that once i use irrlicht.dll from the archive coming with original hcraft win32 version release, all works fine. Once i use one builded from latest sources : that error.

I.e. i even can use my own hovercraft.exe builded, just with irrlicht.dll from win32 binary release : and all works. Once i use that one which i build from latest repo , then have that error.

My bet, that maybe for you it also should fail, just somewhere in the system you have "right" libirrlicht.dll placed.

My windows binary version from where i got working libirrlicht.dll are hcraft_v1_3b.zip

In other words, the fault at moment seems are build of repo's irrlicht (at least on my side currently).

Just to be sure that we use the same, i downloaded both source and media files from there:

https://bitbucket.org/mzeilfelder/trunk_hc1
https://bitbucket.org/mzeilfelder/media_hc1

And in source one i download not any branch or tags, but just "trunk repository", so the last code i assume.

In meantime i tried to build latest irrlicht.dll from current trunk sources, but sadly to say i can't use it with hcraft, it says "entry point into _ZdaPvj not found in irrlicht.dll".

Interesting what can cause irrlicht didn't builds as expected.. I even choice exactly the same target as in build.txt writen : Win32 Release - accurate math - dll. It just looks like that something is can be broken in irrlicht's code in the h-craft repo about tgas (which maybe was fixed in latest irrlicht, but then i can't use latest irrlicht with hcraft - maybe need to try to build static version of it..)