#exult@irc.freenode.net logs for 17 Mar 2003 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[00:06:20] <Dominus> hmm, Dark-Star: still there?
[00:06:43] <Dominus> I need you to test something
[00:06:56] <Dominus> actually Kirben: are you "reading"?
[00:07:16] <Dominus> can you try changing various video options in the game?
[00:07:40] <Dark-Star> yes, I'm still there
[00:07:44] <Dominus> like going from fullscreen to windowed mode and back, using the menu and the F4 key?
[00:08:01] <Dominus> also try enabling/disabling scaling from the menu
[00:08:57] <Dominus> while being fullscreen
[00:10:13] <Dominus> does it work like expected?
[00:10:40] <Dark-Star> yes
[00:10:50] <Dominus> damn
[00:10:52] <Dominus> not for
[00:10:53] <Dominus> me
[00:11:20] <Dark-Star> hmm now it doesn't work anymore...
[00:11:28] <Dominus> When I go into windowed mode I can't get back to fullscreen without a restart and manually editing exult.cfg
[00:11:49] <Dark-Star> same problem here. but somehow I managed to fix it just 2 minutes ago...
[00:13:16] <Dark-Star> there's something seriously wrong I think...
[00:13:46] <Dark-Star> try switching through the resolutions. it worked here when I selected 640x480 full screen and then back to 320x240 full screen
[00:13:46] <Dominus> me too
[00:14:22] <Dark-Star> and I had trouble switching scalers. as soon as I had the bilinear scaler selected, it wouldn't let me select "scaling x2", I only got "x1"
[00:14:46] <Dominus> yep definitely something wrong here
[00:25:33] <Dominus> filed a bug report
[00:34:34] <Dark-Star> got to go. g'night all!
[00:34:44] <Dark-Star> (or good morning? ;-)
[00:34:46] <Dominus> me too
[00:34:49] <Dominus> bye
[00:34:55] <-- Dark-Star has left #exult ()
[00:34:55] <-- Dominus has left IRC ("enough for now")
[01:24:32] --> ShadwChsr has joined #exult
[01:44:34] --> SB-X has joined #exult
[01:44:50] <SB-X> hi
[01:46:42] <SB-X> yo ShadwChsr
[01:46:54] <SB-X> i hear you changed your game to C++?
[01:49:16] <ShadwChsr> yeah
[01:49:17] <ShadwChsr> :)
[01:49:35] <ShadwChsr> trying to get object selection code going hehehe
[01:49:39] <SB-X> Lupercalia right?
[01:50:21] <ShadwChsr> yeah
[01:50:36] <SB-X> i wish i was better at writing C++
[01:50:50] <SB-X> i can read it and write a little in it, but nothing advanced
[01:51:02] <SB-X> and i dont know the stl
[01:51:08] * ShadwChsr nods
[01:51:51] <SB-X> has it been faster rewriting the game in C++ than delphi?
[01:51:59] <ShadwChsr> yes
[01:52:00] <ShadwChsr> :)
[01:52:24] <ShadwChsr> I was working on the delphi version for.. 2 years?
[01:52:41] <ShadwChsr> I've almost caught up in 4 months with c++, and that includes learning the language with no experience at all
[01:52:58] <SB-X> wow
[01:53:12] <SB-X> can you recommend any C++ resources?
[01:53:49] <ShadwChsr> i just did some random surfing and hassling people here :)
[01:53:56] <ShadwChsr> so.. not really, sorry
[01:54:03] <SB-X> does it use templates?
[01:54:09] <ShadwChsr> a little
[01:54:14] <ShadwChsr> I wrote a templated singleton class
[01:54:49] <SB-X> what does it do?
[01:54:53] <SB-X> *looks at sf page*
[01:55:03] <ShadwChsr> the singleton class?
[01:55:05] <ShadwChsr> or the game?
[01:55:05] <SB-X> yeah
[01:55:09] <SB-X> that class
[01:55:21] <ShadwChsr> http://www.vico.org/pages/PatronsDisseny/Pattern%20Singleton/ <- read :)
[01:55:41] <ShadwChsr> its the equivalent of a global "variable", just object oriented.. sort of
[01:55:45] <SB-X> thanks
[01:55:48] <SB-X> but i meant yours
[01:55:51] <SB-X> specifically
[01:56:03] <ShadwChsr> it does exactially what that website says :)
[01:56:35] <ShadwChsr> Provides a static entry point (interface) to a class that's descended from the template
[01:56:53] <ShadwChsr> that class only exists once in the entire application, you cant create multiple instances of it
[01:57:46] <ShadwChsr> The template/class ensures that it is never created more then once.. basically, the class creates itself
[01:57:47] <ShadwChsr> :)
[01:57:58] <ShadwChsr> I use it for my subsystems
[01:58:00] <SB-X> it doesnt have a specific use in your game? like an Application class or something?
[01:58:05] <SB-X> ok
[01:58:09] <ShadwChsr> no, its a template
[01:58:18] <ShadwChsr> its used by descendants
[01:58:22] <SB-X> what are the subsystems?
[01:58:41] <ShadwChsr> public ResourceManager: public Singleton<ResourceManager> {
[01:58:53] <ShadwChsr> Theres alot
[01:59:01] <ShadwChsr> the game itself, the resource manager, etc
[01:59:06] <ShadwChsr> it doesnt really matter, does it? :)
[01:59:07] <SB-X> is it multithreaded?
[01:59:18] <SB-X> no i can just look at the code
[01:59:21] <ShadwChsr> the singleton? Why would it be multithreaded?
[01:59:22] <SB-X> if its at sf
[01:59:24] <SB-X> no
[01:59:27] <SB-X> lupercalia
[01:59:39] <ShadwChsr> no but the resource manager will be multithreaded later
[01:59:58] <ShadwChsr> one of the threads of execution will pre-scan to detect which resources need to be dynamically loaded or unloaded
[02:00:01] <ShadwChsr> that way - no load times
[02:00:09] <SB-X> what is C# being used for?
[02:00:19] <ShadwChsr> Resource Editor
[02:00:53] <ShadwChsr> Managed C++ will be used for the Map Editor
[02:00:59] <ShadwChsr> the game is pure c++
[02:02:08] <ShadwChsr> if I do a multiplayer server it will be in C#
[02:02:16] <SB-X> are you porting it to other platforms?
[02:02:24] <ShadwChsr> since it has awesome stream support and ipv6 support
[02:02:30] <ShadwChsr> no
[02:02:48] <ShadwChsr> The resource manager binary & source will run on anything that runs the .NET framework
[02:02:49] <ShadwChsr> just like java
[02:02:59] <SB-X> i mean the game
[02:03:07] <ShadwChsr> the map editor will (likely) not be ported, and the game itself right now is windows only
[02:03:14] <ShadwChsr> but im writing it so It might be ported later
[02:03:23] <ShadwChsr> quite frankly, i dont care about the 5 people running linux ;)
[02:03:29] <ShadwChsr> 99.9999% of people run windows
[02:03:47] <ShadwChsr> and ALL the other open source games start as linux games, and most never port (or do crappy ports), so this will be my "thank you" for them
[02:03:49] <ShadwChsr> :)
[02:04:21] <ShadwChsr> I want to be the only open source project that runs natively on windows without 10 billion bugs hehehehehe ;)
[02:05:05] <SB-X> why did you change to c++?
[02:06:52] <ShadwChsr> delphi sucks
[02:06:52] <ShadwChsr> :)
[02:06:56] <ShadwChsr> also wanted to learn it
[02:06:58] <-- ShadwChsr has left IRC ()
[02:13:32] <-- SB-X has left IRC ("X-Chat [1.6.4]")
[02:18:27] --> Pyro-X has joined #exult
[07:28:21] --- Pyro-X is now known as X-sleep
[08:16:20] --> wjp has joined #exult
[08:16:20] --- ChanServ gives channel operator status to wjp
[12:42:55] --> Fingolfin has joined #exult
[12:42:55] --- ChanServ gives channel operator status to Fingolfin
[12:47:15] --> Colourless has joined #Exult
[12:47:15] --- ChanServ gives channel operator status to Colourless
[12:47:23] <wjp> hi Max, Ryan
[12:47:39] <Colourless> hi
[12:51:52] <Fingolfin> hi
[13:13:19] --> Dark-Star has joined #exult
[13:36:35] <-- Fingolfin has left IRC ("42")
[13:40:30] <-- Kirben has left IRC ("System Meltdown")
[14:01:50] --- wjp is now known as wjp|work
[14:53:38] --- Dark-Star is now known as Dark-Star|afk
[14:58:47] <-- Colourless has left IRC ("casts invisibility")
[16:33:47] --> Dominus has joined #exult
[16:33:51] --- ChanServ gives channel operator status to Dominus
[16:34:25] <Dominus> hi
[16:35:52] <wjp|work> hi
[16:35:58] <Dominus> wjp|work: when you got the time and on a machine with Exult could you take a look at http://sourceforge.net/tracker/index.php?func=detail&aid=697550&group_id=2335&atid=102335
[16:36:08] <Dominus> this one is really a bug
[16:36:20] <Dominus> not like my damn patch problem :-)
[16:57:35] <wjp|work> time to go
[16:57:35] <-- Dominus has left IRC (Read error: 104 (Connection reset by peer))
[16:57:37] <-- wjp|work has left IRC ("bbl")
[17:19:02] --> armav has joined #exult
[17:23:46] --> wjp has joined #exult
[17:23:46] --- ChanServ gives channel operator status to wjp
[17:37:52] <-- armav has left IRC ("Client Exiting")
[17:49:32] <-- wjp has left IRC ("bbl")
[18:18:04] --- X-sleep is now known as sbx
[18:28:07] <-- sbx has left IRC ("X-Chat [1.6.4]")
[18:29:50] --> Pyro-X has joined #exult
[18:35:32] <-- Pyro-X has left IRC ("X-Chat [1.6.4]")
[20:05:06] --> Fingolfin has joined #exult
[20:05:06] --- ChanServ gives channel operator status to Fingolfin
[20:10:07] <Fingolfin> hi
[23:11:09] --> Kirben has joined #exult
[23:11:10] --- ChanServ gives channel operator status to Kirben
[23:17:30] --> BET-frogger has joined #exult
[23:18:42] <BET-frogger> Fingolfin still awake and not having dinner?
[23:18:59] <Fingolfin> yes, no
[23:19:03] <Fingolfin> or yes, yes
[23:19:09] <BET-frogger> :)
[23:19:12] <Fingolfin> depending on how you deal with negated questions
[23:19:53] <BET-frogger> ..the mathematically correct way :)
[23:20:54] <BET-frogger> following your instruction building a static version of exult...:
[23:20:57] <BET-frogger> ld: /opt/sdl-cvs/lib/libSDL.a(SDL_QuartzVideo.lo) illegal reference to symbol: ....
[23:21:14] <BET-frogger> _HideMenuBar defined in indirectly referenced dynamic library /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
[23:21:35] <BET-frogger> what can I do?
[23:22:51] <BET-frogger> and 2 more symbols: _NewSndCallBackUPP _IONotificationPortGetRunLoopSource
[23:23:36] <BET-frogger> is there a 'special' (or non standard way) of building SDL?
[23:29:11] <Fingolfin> you must specify -framework Carbon among the linker options
[23:32:35] <BET-frogger> works...almost...: plus adding -framework IOKit does it
[23:32:57] <BET-frogger> you're my master :)
[23:33:05] <BET-frogger> thanks
[23:37:07] <Fingolfin> np
[23:37:09] <Fingolfin> see also
[23:37:10] <Fingolfin> sdl-config --static-libs
[23:37:11] <Fingolfin> vs.
[23:37:14] <Fingolfin> sdl-config --libs
[23:38:16] <BET-frogger> oh - I see
[23:38:45] <Fingolfin> the deeper reasons are two-level namespaces...
[23:39:02] <Fingolfin> if you link statically, then these have to be flattened
[23:39:14] <Fingolfin> and thus you also have to specify libs against you only link indirectly
[23:41:09] <BET-frogger> pardon me - why has the namespace to be flattened, what are two-level ns?
[23:41:32] <BET-frogger> tell me if it's not too late for thee
[23:49:19] <Fingolfin> I am staying up till the Bush speech anyway :-)
[23:49:35] <Fingolfin> a lib may depend on other libs, e.g. SDL depends on Carbon etc.
[23:49:56] <Fingolfin> now imagine, you need SDL, which depends on Carbon, which contains amethod GetResource; but your program also has a method GetResource
[23:50:16] <Fingolfin> in a "flat" environment you get a duplicate symbol error
[23:50:28] <Fingolfin> because SDL pulls in the symbols from Carbon which conflict with yours
[23:50:59] <Fingolfin> if you develop on the Mac you can easily avoid this, but if your app was developed for linux/win32, you will never know until you try to port to the Mac
[23:51:03] <Fingolfin> enter two level namespaces
[23:51:28] <Fingolfin> here the linker keeps track of which code needs which version of GetResource
[23:51:41] <Fingolfin> it can distinguish between code/libs you link directly to, and that which you link indirectly
[23:52:08] <Fingolfin> hence it knows that if your code calls GetResource, your version of GetResource is meant, since the one in Carbon is only indirectly linked
[23:53:02] <Fingolfin> now, this information is lost when you static link. furthermore, the static libs carry no information about the libs they need...
[23:53:25] <Fingolfin> i.e. libSDL.dylib actually carries the info that it needs Carbon (just do a "otool -L libSDL.dylib" and it'll list you all indirect refs)
[23:53:36] <Fingolfin> but the static lib (libSDL.a) doesn't contain this info
[23:53:47] <Fingolfin> hence you have to specify the indirect refs manually on the command line
[23:54:09] <Fingolfin> I hope that answers your question :-) if not feel free to ask back, oh, and do something against the bleeding from your ears :-)
[23:55:05] <BET-frogger> thanks again - I just found an article on apple's sites
[23:57:34] <BET-frogger> doing something against what? bleeding from my ears?