Page 3 of 25

Posted: Fri Mar 13, 2009 12:12 pm
by Ben Urban
One thing to try would be building the source for a version that used to work, to make sure it still does.

Posted: Fri Mar 13, 2009 12:14 pm
by Shade
Ben Urban wrote:One thing to try would be building the source for a version that used to work, to make sure it still does.
I still have binary #10 in my folder, and it still works with the current revision and all of that, if that's what you mean. Only the newer binaries don't.

Posted: Fri Mar 13, 2009 12:28 pm
by Ben Urban
No, I mean rebuilding that binary from its source. Perhaps the build process changed, or the DLLs changed. Isolating the cause might be useful.

Posted: Fri Mar 13, 2009 3:20 pm
by Zefz
That is a very good idea. I'll have to get the old source somehow. Checkout/reverting takes ages now we have all the datafiles up there too.

Posted: Sun Mar 22, 2009 10:31 pm
by Zefz
Here clonks. Birdsey made a lot of changes to the new binary: http://www.2shared.com/file/5152183/807 ... ry-18.html

Make sure you test with and without [SDL_IMAGE]

Everyone else should download this binary as well. It fixes several other bugs in addition to some major improvements to the AI =)

Posted: Sun Mar 22, 2009 10:48 pm
by bgbirdsey
I'm going to make one more update today that should fix the waypoint stuff completely. :)

Brom and Mim do not freeze in the Gelfeet room now, but Brom now follows the gelfeet around instead of attacking???

Also, there is still a problem with loading .ogg sounds for the characters. I think the only way around it would be to make some kind of anonymized union like

Code: Select all


enum e_mix_type { MIX_UNKNOWN = 0, MIX_MUS, MIX_SND };
typedef enum e_mix_type mix_type_t;

struct s_mix_ptr
{
  mix_type_t type;
  
  union
  {
    Mix_Music  * mus;
    Mix_Chunk * snd;
  }
}

typedef struct s_mix_ptr mix_ptr_t;
Then we could set the type when we load the sound type and, use the type to dispatch the use of Mix_PlayMusic() and Mix_PlayChannel()?

Posted: Mon Mar 23, 2009 1:28 am
by bgbirdsey
I think I have the sound stuff mostly worked out. I think I was able to get all the default sounds to load an play, but we will see...

Posted: Mon Mar 23, 2009 1:45 am
by penguinflyer5234
bgbirdsey, your update on the ConfigFile "class" has broke egoboo.
It is segmentation faulting when not in gdb and glibc detected a double free or corruption (!prev)
Backtrace as follows: (no line numbers...)

Code: Select all

#0  0xb7ffb430 in __kernel_vsyscall ()
#1  0xb7ca98a0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7cab268 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7ce716d in ?? () from /lib/tls/i686/cmov/libc.so.6
#4  0xb7ced454 in ?? () from /lib/tls/i686/cmov/libc.so.6
#5  0xb7cef4b6 in free () from /lib/tls/i686/cmov/libc.so.6
#6  0xb7cdd064 in fclose () from /lib/tls/i686/cmov/libc.so.6
#7  0x0805aeed in ConfigFile_destroy ()
#8  0x0805cf39 in setup_quit ()
#9  0x08063ab1 in memory_cleanUp ()
#10 0xb7cacd89 in exit () from /lib/tls/i686/cmov/libc.so.6
#11 0xb7c9468d in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#12 0x0804b2a1 in _start ()

Posted: Mon Mar 23, 2009 2:09 am
by bgbirdsey
hmmmm... that should not be possible... :P

As you can see, the data is not freed until the program quits, as memory_cleanUp() is called after the exit () in libc_start_main().

It could be possible that I am freeing a NULL pointer, though.

Also, this error should only be happening when you exit the program, so broken doesn't mean "not playable"?

-----------------------------

This probably can't be from the latest version in the SVN because the stack unwind is missing a call to ConfigFile_close(), which is the only place that fclose () is used in configfile.c
  • - fclose ()
    - ConfigFile_close ()
    - ConfigFile_destroy ()
    - setup_quit ()
    - memory_cleanUp ()
    - exit ()
    - __libc_start_main ()
    - _start ()
-----------------------------

I may have found an error, as there were two declarations of

static ConfigFilePtr_t lConfigFile = NULL;

maybe something was getting confused...

Posted: Mon Mar 23, 2009 2:38 am
by penguinflyer5234
In 392 and 393 the error happens, Egoboo is still playable (and config saving works too), but it is bad to get a segmentation fault.

Posted: Mon Mar 23, 2009 2:57 am
by bgbirdsey
just updated to 394. let me know if there is still a problem.

I'm going to try to get it to compile and run on my linux box.

------------------------------------------

It runs under mesa software rendering at about 4 frames per second.

No Seg Fault was reported to me, so it might be fixed.

Posted: Mon Mar 23, 2009 8:06 am
by Zefz
I coded Brom not to attack the jelly. Attacking the Jelly could destroy his sword, which makes the module a lot harder (and it is nothing the player can control). He keeps a respectful distance now.

Maybe I should code Brom to attack only when the player gets engulfed in the jelly.

Posted: Mon Mar 23, 2009 8:47 am
by bgbirdsey
Maybe there should be a "defend" function that sets a character's AI to the closest enemy that has attacked a team-member?

You would have to script some pretty specific stuff to make all characters escape a jelly. They would have to be able to see that their mount was hurting them and then try to jump free. Not complicated, but a bit of a pain since the code can't be inherited.

Posted: Mon Mar 23, 2009 12:19 pm
by Shade
Alright, I tried the newest binary now (with the newest revision as well).

With SDL_Image set to TRUE, the menu worked just fine, as did the status bars in-game and stuff. However, the water-stuff (in Abyss 2's case, the lava) still covers the whole sight, making it impossible to play.

With SDL_Image set to FALSE, the title image isn't shown (there's no white square either though, there simply is nothing, it's black), but the other images and the menu show up just fine. When I try to play a module, however, Egoboo crashes (I tried both Bishopia and the Ice Palace, since many modules suddenly vanished from my list of selectable modules for some reason). For the Ice Palace, log.txt spits out this:

Code: Select all

Starting Egoboo 2.7.0c...
INFO: Initializing high-performance counter...
INFO: Frequency is 3579545 hz
INFO: Initializing clock services...
INFO: Initializing filesystem services...
INFO: Game directories are:
	Game: D:\Programme\Egoboo 2.6.x (SVN)
	Temp: C:\DOKUME~1\Robert\LOKALE~1\Temp\
	Save: C:\Dokumente und Einstellungen\Robert\Eigene Dateien\egoboo\
	Import: C:\DOKUME~1\Robert\LOKALE~1\Temp\import\
INFO: Initializing SDL_Image 1.2.6... Success!
INFO: net_initialize: Networking not enabled.
INFO: Initializing SDL_mixer audio services... Success!
INFO: Initializing module linking... Success!
SCRIPT ERROR: modules\palice.mod\objects\rustmaggot.obj\script.txt - SetTargetToNearestLifeForm undefined
FATAL ERROR: Cannot load file! (basicdat\fonts.bmp)
INFO: memory_cleanUp() - Attempting to clean up loaded things in memory... Succeeded!
INFO: Exiting Egoboo 2.7.0c the good way...

Posted: Mon Mar 23, 2009 4:12 pm
by bgbirdsey
Clonkinator wrote: With SDL_Image set to FALSE, the title image isn't shown (there's no white square either though, there simply is nothing, it's black)
This is what is going to happen, since the only title image in the game is in .png format. So, if you turn off SDL_Image, you can't load it.

It is the same problem with the FATAL ERROR. Only a .png for the fonts.

There should be a workaround for this, like the possibility that .bmp is the least preferred format, so that there can be default .bmp and a preferred .png or .jpg...

You could copy an old version of the fonts.bmp into your /basicdat folder to get around this temporarily.