#nuvie@irc.freenode.net logs for 24 Apr 2006 (GMT)

Archive Today Yesterday Tomorrow
Nuvie homepage


[00:12:45] --> Ordoc has joined #nuvie
[00:13:12] <Ordoc> whats up
[00:13:52] <Ordoc> is debugging awfully slow in nuvie for you guys? i assume its SDL if anything
[00:16:13] <servus> MSVC6's debugger seems faster, if it'll compile Nuvie.
[00:16:24] <Ordoc> servus: im using vis studio 2005
[00:16:53] <servus> Just saying :P
[00:17:01] <Ordoc> hehe
[00:17:20] <Ordoc> i was breaking on some gui stuff and it was taking like 10 seconds to hit the breakpoint
[00:17:27] <Ordoc> and then 10 seconds to step
[00:17:43] <servus> Dunno. Gotta go. Bye.
[02:29:34] <SB-X> hey Ordoc
[02:29:46] <SB-X> i dont normally run nuvie through gdb but I havn't noticed any slowdowns
[02:59:23] <Ordoc> i must suck :)
[03:00:17] <Ordoc> it seems strange that it would be going so slow, my machine isn't too slow
[03:00:28] <SB-X> something wrong with SDL in windows maybe?
[03:01:03] <Ordoc> could be, i just downloaded the devel libraries from their site
[03:20:35] <SB-X> bbl
[03:20:37] <-- SB-X has left IRC ("casts gate travel")
[03:23:04] <Ordoc> http://www.libsdl.org/faq.php?action=listentries&category=4#72
[03:23:06] <Ordoc> is the answer :)
[03:23:11] <Ordoc> The DirectX drivers have a system lock while you have video surfaces locked. To avoid this, you can set the video driver to GDI by setting the SDL_VIDEODRIVER environment variable to: windib
[03:23:11] <Ordoc> Since this changes video and mouse/keyboard input drivers, you'll see a difference in performance and features available, but you'll be able to debug your application more easily.
[03:27:03] <Ordoc> found an interesting option in the VS 2005 settings: "optimize for windows 98: Align code on 4KB boundaries. This improves performance on Windows 98 systems."
[06:09:32] --> SB-X has joined #nuvie
[07:02:03] --> luteijn has joined #nuvie
[07:02:55] <luteijn> is it me or is SF's anon CVS just not updated for a while?
[07:36:00] <-- luteijn has left IRC ("[BX] Reserve your copy of BitchX-1.1-final for the Commodore 64 today!")
[07:48:55] <SB-X> it's just you!
[07:49:50] <SB-X> wait, no it's not updated
[07:49:57] <SB-X> maybe we need a linux snapshot
[07:53:48] --> luteijn has joined #nuvie
[07:55:00] <luteijn> or just an alternative to SF's anon cvs download :) Oh well, I'll just keep trying until it is updated..
[07:55:15] <SB-X> i didn't say binary snapshot...
[07:55:35] <SB-X> how are you doing, pieter?
[07:56:09] <luteijn> I'm fine, trying to study for a cisco exam.. getting distracted..
[07:56:25] <SB-X> what about your kid?
[07:56:33] <SB-X> can he play u6o yet?
[07:57:01] <luteijn> nope, but he's figured out how to pull on the string of his musical ducky ;)
[07:57:46] <SB-X> amazing! but I hope you don't call him Ducks
[07:57:51] <SB-X> eh *shrugs*
[07:58:01] <luteijn> :)
[07:58:18] <SB-X> anyway, getting distracted isn't necessarily a bad thing if your attention is on nuvie
[07:58:26] <SB-X> or what have you
[07:58:45] <SB-X> i was actually distracted by a few games the past few months which kept me too busy to work on it
[07:58:53] <SB-X> that's why i didnt get your code uploaded until recently
[07:59:11] <luteijn> yeah, I was wondering how the magic thing turned out, and trying to remember how it worked so I could add to the spells.nsl list.
[07:59:32] <SB-X> though I guess if you're trying to study for a certification, you'd better stay focused :)
[07:59:36] <SB-X> heh
[07:59:42] <SB-X> yuv moved it to data
[07:59:59] <SB-X> i still don't understand the format yet, and wonder if there isnt a way it could be more readable
[08:00:09] <luteijn> [14:34:06] <Yuv422> magic data is evil
[08:00:15] <SB-X> !
[08:00:24] <SB-X> that's a bit out of context ;)
[08:00:27] <luteijn> it's more readable if you use syntax coloring..
[08:00:39] <SB-X> oh, right
[08:01:05] <SB-X> in that quote he is talking about game constants in the executable/source files
[08:02:20] <luteijn> Ah I see.. but still it seemed appropriate to the spells.nsl file ;)
[08:02:52] <SB-X> i read the U6O forum and noticed you posting... have you played recently? it sounds like there have been quite a few changes in the last 6 months
[08:02:59] <SB-X> yeah
[08:03:42] <luteijn> I'v eplayed a littel everytime they updated something. I don't think the changes have been that shocking.
[08:04:53] <luteijn> the monsters drop stuff now, which made the whole economy different again.
[08:06:29] <luteijn> hmm looking at the spell-list, I think I remember the format; it doesn't seme very hard; is there anything particulary confusing to you?
[08:16:45] <SB-X> I just didn't understand how to read it, that's all.
[08:16:50] <SB-X> after staring at it for a while it came to me
[08:17:17] <SB-X> but im still not sure of the exact ordering and things, and obviously I won't know all the keywords unless I look them up
[08:18:46] <luteijn> I thin kthe order is not too rigid, as long as all the parts are there, and I guess the name has to be first.
[08:19:04] <SB-X> re: U6O. Havn't played in at least 6months, so the changes seem greater to me than to you. I don't even remember any custom houses (except that first one by GalleonDragon) or guildhalls.
[08:19:13] <SB-X> the name of what?
[08:19:16] <SB-X> oh, spell name
[08:19:38] <SB-X> i meant in the script
[08:22:39] <luteijn> actually looked at the read_spell_list function and the order doesn't matter at all, as long as you don't put a ~ before the end of the definition of the spell. The script part of the spell has to be on one line (or broken with \)
[08:23:10] <SB-X> ok
[08:23:40] <luteijn> the syntax of the scripting language is based on forth; you post fix the operation to the operands.
[08:24:09] <SB-X> It was the script order that confused me, because I was trying to read it like a procedural or scripting language, not a set of data and instructions to be placed on the stack and performed.
[08:24:21] <SB-X> yeah
[08:25:41] <luteijn> hey, I remember I documented a lot of this stuff in 'magic.txt' ..
[08:25:59] <SB-X> it was an html file
[08:26:43] <SB-X> ah, you did :)
[08:26:57] <SB-X> some of them are blank though
[08:29:01] <luteijn> yeah, I guess I got bored filling them in ;)
[08:29:19] <SB-X> I still think the "magic engine" could be extended to read usecode scripts.
[08:29:55] <SB-X> but that would probably not be of much benefit, just something cool
[08:31:24] <luteijn> probably very possible, I just made up the scripting language on the spot. It's a really basic language anyway.
[08:31:30] <SB-X> heh
[08:33:34] <luteijn> the difference between 'commands' and 'functions' is a little vague since it will treat and unknown command (e.g. _fubar) as a _call command (e.g. _fubar is treated as fubar _call).
[08:36:04] <SB-X> i don't usually like prefixed underscores
[08:37:58] <SB-X> hard to read for some reason, so maybe that's why it took me some time to understand the script language
[08:38:04] <luteijn> Well, I guess any unique character could be used.
[08:38:31] <SB-X> how do you make a function?
[08:38:38] <SB-X> define it
[08:39:18] <luteijn> you mean a support function to be called with '_call', or a sub-routine in the script?
[08:40:49] <SB-X> fubar
[08:41:21] <SB-X> which you called with _call
[08:41:29] <luteijn> those have to be defined at compile time.
[08:41:40] <SB-X> oh
[08:42:12] <SB-X> what is their purpose then? you could just do everything with commands
[08:42:36] <SB-X> i just sent you a copy of the newest CVS, in case you don't already have it
[08:43:00] <luteijn> well, I wanted to only have a few commands (mostly branching) and a command extention feature (the _call command)
[08:43:58] <luteijn> but it got tedious to push the function name and _call it all the time so I made it to automatically try a call on unknown commands.
[08:44:29] <SB-X> functions could be for game-specific code like Exult's intrinsics, or could be defined in other scripts
[08:46:17] <luteijn> the only way spell-scripts interact now is if one spell-script rewrites the definition of another spell, and re-loads the spell list. (See the spelllist editor-spells)
[08:47:22] <SB-X> ah k
[08:47:34] <luteijn> you can define a subroutine within a script though, example is in spell 11.
[08:48:04] <SB-X> that's the one it took me a while to understand
[08:48:34] <luteijn> it's a little tricky to call them as it doesn't store a return address implicitly, but you explicitly drop 'back' on the stack..
[08:49:12] <SB-X> oh, that explains 'back'
[08:49:26] <luteijn> and the label of the subroutine is ':sub' which is confusing with the 'sub(tract)' command.
[08:50:37] <SB-X> hmm, it is
[08:50:42] <SB-X> i thought the label was ':back'
[08:51:43] <SB-X> spell effects will be functions
[08:52:17] <luteijn> :back is what it will search for in the script string when at the end of the subroutine it says _jmp (and "back" is on the top of the stack then)
[08:53:13] <SB-X> does the label go before or after the contents of the subroutine
[08:53:35] <luteijn> yes, but hopefully not something monolithic, but instead calls to smaller functions instead, so it will be possible to combine the smaller functions in new ways for new spells.
[08:54:45] <luteijn> :sub " _swap _newline " _display _jmp
[08:55:16] <luteijn> this is the subroutine. it is build up as follows:
[08:55:26] <SB-X> right... ok, the location of the colon was a little confusing too
[08:55:47] <SB-X> i tend to read it as if the colon is pointing towards the subroutine
[08:55:48] <luteijn> :sub - label to make it possible to jmp to it (recognizable as a label because it starts with a :)
[08:56:07] <SB-X> or on the side of the subroutine
[08:56:37] <luteijn> (it's again a case of the first character indicating that this token is a special token, not to be put on the stack)
[08:56:47] <SB-X> i see
[08:57:38] <luteijn> " is put on the stack, and will later be used by the display function to know what to display
[08:58:54] <luteijn> _swap - read as swap _call -> will call the swap function that swaps whatever is on the stack just below the " we just put on, essentially pulling the argument to the subroutine inside the string to display
[08:59:30] <luteijn> _newline puts a newline character on the stack
[08:59:37] <luteijn> " is put on the stack
[09:00:22] <luteijn> _display -> calls display function, which will see that it's delimiter will be the " and then goes back popping stuff from the stack until it finds the delimiter.
[09:00:37] <luteijn> (you can see a different delimeter being used in the spell stubs)
[09:01:39] <luteijn> finally, _jmp will jump to whatever is left on the stack.
[09:02:42] <SB-X> the only part of that I hadn't understood was _swap
[09:03:07] <luteijn> so when you jump to ":sub" make sure you have a return-here label set up, and something on the stack to display. If the someting happens to be a " you'll mess the displaying.
[09:03:34] <SB-X> heh
[09:03:51] <luteijn> swap, over, dup are all simple stack manipulating functions.
[09:04:28] <SB-X> yeah
[09:05:49] <luteijn> note that the :loop label is more or less a comment, indicating that everything between :do and :loop is the body of the loop.
[09:06:36] <SB-X> i didnt know that either
[09:06:41] <SB-X> how does the interpretor handle labels?
[09:07:22] <luteijn> they're treated as 'nop' when it encounters them while 'executing' the script.
[09:07:44] <luteijn> but the 'jmp' command(and it's variations) do notice them when scanning the script.
[09:08:12] <SB-X> how does it scan the script? does it reread the entire script backwards from jmp?
[09:08:29] <luteijn> see the Magic::jump member function
[09:08:40] <SB-X> or at least go back through a list of tokens
[09:08:42] <SB-X> ok
[09:08:56] <luteijn> it actually scans forward first, then rewinds if it hasn't found it at the end.
[09:09:51] <luteijn> if (token[0]==':' && !strcmp(token+1,label) ) {*OIP=IP;return true;};
[09:11:08] <luteijn> that's the main thing in the jump function; if the token starts with a ':' and the rest of it is the same as the label we're looking for, the Original Instruction Pointer is set to our local IP.
[09:12:30] <luteijn> 5 5 _random _add 0 :do
[09:12:43] <luteijn> this sets up the stack for a loop.
[09:13:52] <luteijn> _random eats the top 5 on the stack, replaces it with a random value, then _add eats both the random value and the other 5 to replace it with their sum. this will be the 'stop-value'
[09:14:02] <luteijn> the 0 is the initial value for the index.
[09:16:04] <luteijn> then the body of the loop puts 'back' on the stack, copies the index with _over, calls the display function to show the index.
[09:17:13] <luteijn> the line marked ':loop' adds 1 to the index and compares a copy of the 'stop-value' with a copy of the new index.
[09:18:10] <luteijn> (if their difference, calculated with the 'sub(tract)' funciton is 0 then jmptrue won't jump back to ':do' so the loop ends)
[09:19:21] <SB-X> and you get a "---"
[09:20:12] <luteijn> if you cast the 'kow' spell, you can see it all in action.
[09:20:19] <SB-X> yep
[09:20:29] <SB-X> thanks for explaining it, I still don't like reading it :)
[09:20:52] <SB-X> i might play around with the scripting to see if I can add a spell
[09:21:00] <luteijn> It's hard to read if you're not used to RPN calculators and stuff.
[09:21:01] <SB-X> but that will be after I finish combat mode
[09:21:09] <SB-X> hehe
[09:21:43] <SB-X> I'm not used to RPN calculators.
[09:22:13] <SB-X> had to look up what an RPN calculator is
[09:22:56] <luteijn> Anyway the whole script language can probably be replaced by something different.
[09:23:37] <SB-X> I was going to suggest making labels use two colons ( :sub: ), but you might as well make all of it more "high-level".
[09:24:00] <SB-X> you could make an intermediate interpretor and convert between the two forms
[09:24:17] <luteijn> well labels can use two colons
[09:24:17] <SB-X> then you wouldnt have to rewrite the current engine
[09:24:24] <SB-X> hmm, that's true!
[09:24:44] <luteijn> http://home.iae.nl/users/mhx/sf6/sf6.html
[09:24:59] <SB-X> it's probably fine as it is, just need some magic functions now :)
[09:25:22] <luteijn> I made a create food spell ;)
[09:25:46] <luteijn> it didn't have any visual effects so was rather easy to do;
[09:26:11] * SB-X didn't have the spell, or enough reagents.
[09:26:51] <SB-X> i know how a do loop works...
[09:27:08] <SB-X> whats with the train
[09:27:28] <SB-X> well, I don't know Forth
[09:28:09] <luteijn> that book is really funny to read, and I stole most of the stuff from there.
[09:28:20] <SB-X> ah
[09:28:23] <SB-X> guess I'd better learn it then
[09:28:55] <SB-X> http://www.forth.org/
[09:29:00] <luteijn> well I guess just reading through the book will help.
[09:30:39] <luteijn> the characters in he book's pictures are really funny. there's a guy with an axe to execute code, a leave to break out of loops (leave the loop) etc.
[09:31:18] <SB-X> i was wondering about the executioner
[09:32:36] <luteijn> there's a monk that 'compiles' and an 'interpretor' The illustations in the 'dead-trees-version' of the book are better though.
[09:34:15] <SB-X> hehe
[09:34:59] <SB-X> So, for magic functions you want something like "time speed color eff_rain _call ... some loop with random timing ... eff_lightning _call" instead of "eff_u6magicstorm _call".
[09:35:31] <luteijn> yes.
[09:36:00] <SB-X> cool
[09:36:02] <luteijn> so you could build a new spell later on that reuses part of the effects from other spells.
[09:36:34] <SB-X> i dont know what that specific spell would look like, or how useful it is like that
[09:36:46] <SB-X> maybe there are some slightly different spells in MD/SE
[09:37:11] <luteijn> and even the existing spells could benifit, since there's not much difference between a fireball and a lightning bolt, apart from the bolt being different.
[09:38:11] <SB-X> tue
[09:38:14] <SB-X> true*
[09:38:27] <SB-X> then you could just call a generic missile effect
[09:38:34] <SB-X> with the tile
[09:39:07] <SB-X> i wonder how this would work with upgraded effects
[09:39:37] <SB-X> we want to have a different magic storm than u6
[09:39:46] <SB-X> oh, we already talked about that
[09:41:45] <luteijn> you might have to have a different spell script for an upgraded effect.. but it could be easily patched in, I guess.
[09:42:45] <SB-X> if we only had the upgraded version it would be simple, but for some reason I want to include both versions
[09:43:37] <SB-X> the other way would be to make the change invisible to the spells, so that eff_lightning calls whatever the preferred lightning effect is
[09:44:48] <luteijn> but what if the effect would need, say, an additional call for the improved version?
[09:45:09] <luteijn> e.g. noraml version just loads up a tile and missile-hurls it to target
[09:45:46] <luteijn> but improved version adds a thunderclap on impact + a flash (like potion effect) and trembling earth?
[09:46:21] <SB-X> that wouldnt be possible
[09:46:33] <luteijn> you'd not want to combine it all into the new function, as the flash and trembling are reusable for other spells.
[09:46:40] <SB-X> except where the new version did all that in the new function
[09:46:46] <SB-X> nope
[09:47:58] <luteijn> well, there's a lot of free space in the spell-list so you could load all the variant spells as level 9 - 16 spells
[09:48:24] <luteijn> then when casting use the 'use_new_spell_effects' switch as a bank selector
[09:48:38] <SB-X> In a C++ function you'd check a global setting and change behavior accordingly, so you could do the same with spell scripts and just do both effects in the same spell.
[09:48:58] <SB-X> that's another way anyway
[09:49:59] <luteijn> yeah you could add a 'advanced_effects' function to load either a 0 or a 1 on the stack and branch based on that.
[10:05:05] <SB-X> yes good idea
[10:12:09] <luteijn> hmm only way to wield the spell book is to drag it with the mouse?
[10:13:11] <SB-X> I'm able to select it with the mouse cursor to ready it, or use the keyboard and select it.
[10:13:25] <SB-X> that's one of the recent changes
[10:13:38] <SB-X> now there is not an easy way to see what spells you have
[10:16:11] <luteijn> hmm the actual 'cast' button is not tied to the magic stuff yet in the cvs version, is it?
[10:18:32] <SB-X> yes
[10:20:00] <luteijn> yes as in you're correct in stating this in the negative?
[10:20:12] <SB-X> no
[10:20:56] <luteijn> ;.( confused. "How do I cast a spell in nuvie?"
[10:21:22] <SB-X> are you asking me? :)
[10:21:26] <SB-X> press C
[10:21:37] <SB-X> maybe you have the non-updated version
[10:21:59] <SB-X> the cast button works too, but I rarely used that in U6
[10:22:05] <luteijn> just get 'what?'
[10:22:16] <SB-X> actually, I rarely used magic at all
[10:22:27] <SB-X> are you using the version I sent you?
[10:22:40] <luteijn> I think I am.
[10:23:15] <luteijn> it has Magic.cpp etc, but nothing seems to be calling it ;)
[10:23:16] <SB-X> make you copied it over the old version and didnt make clean
[10:23:40] <SB-X> maybe*
[10:23:50] <luteijn> hmm let me try again, probably messed it up when copying around oldversions.
[10:24:37] <luteijn> probably copied the old one over the new one instead of the other way around ;)
[10:31:55] <luteijn> okay works now..
[10:33:59] <SB-X> good
[10:34:12] <SB-X> why does Magic need a callback in Event?
[10:35:13] <luteijn> not sure anymore, probably because it wants to eat your keys to build up the spell?
[10:35:27] <luteijn> if you move something into the spellbook, you get a look inside.
[10:35:38] <SB-X> ah k
[10:36:14] <SB-X> looks like we have a way to see our spells then :)
[10:36:45] <SB-X> the expected behavior is a message "Only spells can go into the spellbook!"
[10:37:03] <luteijn> yes was about to remark that as I managed to put some bread in :)
[10:40:54] <SB-X> oh, so that's how you do the In Mani Ylem trick
[10:44:40] <luteijn> hmm tried to cast my spell editor spell, but it crashes nuvie when I enter something..
[10:46:05] <SB-X> it tells me "That spell is not in thy spellbook!"
[10:47:03] <luteijn> spam up an item 58 quality 255 (all spells)
[10:47:31] <SB-X> oh, that actually works
[10:47:31] <SB-X> nice
[10:50:04] <luteijn> hmm if you have an empty spellbook, casting something crashes nuvie.
[10:50:45] <luteijn> I guess I should check if there's anything in the spell book before trying to look at what's inside
[10:50:48] <SB-X> #8 0x080bed9f in Stack::pop (this=0x81f9908) at Magic.cpp:77
[10:50:48] <SB-X> #9 0x080c0cbb in Magic::function_join (this=0x400b1e80) at Magic.cpp:737
[10:50:48] <SB-X> #10 0x080c0d1d in Magic::function_display (this=0x81f8740) at Magic.cpp:750
[10:50:48] <SB-X> #11 0x080c0364 in Magic::call (this=0x81f8740, function=0xbffef6c1 "display")
[10:50:48] <SB-X> at Magic.cpp:524
[10:51:46] <SB-X> thats the backtrace in gdb when nuvie crashes upon casting IOW
[10:52:18] <SB-X> but it goes further into the standard library
[10:52:35] <SB-X> it tries to throws an error but doesnt print anything
[10:52:39] <SB-X> throw*
[10:52:40] <luteijn> looking at that myself now, it expects the 'input' to have returned something on the stack.
[10:53:16] <luteijn> probably it hasn't done so, and wants to report this, but input might have messed up things.. ?
[10:54:19] <luteijn> it tries to throw 'stack underflow\n'
[10:54:47] <SB-X> what input?
[10:55:05] <luteijn> ah list Magic::function_input
[10:55:47] <luteijn> that ought to read something from stdin and put it on the stack
[10:56:22] <SB-X> whats at stdin?
[10:57:05] <SB-X> you mean the msgscroll?
[10:57:25] <SB-X> // FIXME don't read from stdin, but use MsgScroll;
[10:57:26] <SB-X> oh
[10:57:39] <luteijn> well it doesn't read from the message scroll, it just does a 'cin.get' so far.
[10:58:00] <SB-X> my version isn't compiling right now because of my changes to ActorManager :)
[11:08:29] <luteijn> hmm could be that it keeps getting the enter keystroke after it's pressed once.
[11:11:27] <SB-X> not sure why that would hurt it
[11:12:31] <luteijn> it will get invalid input (empty strings) and then crash later on when trying to us it..
[11:14:19] <luteijn> it's been a while since I made this, maybe it never worked properly.. that input function looks dodgey anyway.
[11:15:39] <luteijn> november 2004 -- that's like in prehistory..
[11:16:28] <SB-X> heh
[11:16:33] <SB-X> i didn't realize it'd been so long ago
[11:17:06] <SB-X> i need to add move-into object soon, and tie the mouse to events
[11:30:00] <SB-X> http://kaldosh.kicks-ass.net:8080/default/phpbb2/viewtopic.php?t=180&postdays=0&postorder=asc&start=20
[11:30:01] <SB-X> wow
[11:30:13] <SB-X> he even made new gargoyles
[11:37:48] <luteijn> makes good use of the higher resolution.
[11:45:40] <-- Kirben has left IRC ("System Meltdown")
[11:49:21] --> Kirben has joined #nuvie
[13:06:14] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[14:03:15] --> laxdragon has joined #nuvie
[14:17:07] <Ordoc> SB-X: i solved the slow debugging issue in vis studio: http://www.libsdl.org/faq.php?action=listentries&category=4#72
[14:25:40] <SB-X> Ordoc: heh, nice
[14:31:37] <Ordoc> dirty directx :)
[14:53:56] <-- Ordoc has left IRC ()
[14:54:22] --> Ordoc has joined #nuvie
[19:05:08] <-- SB-X has left IRC (Remote closed the connection)
[19:31:29] --> SB-X has joined #nuvie
[19:44:52] <-- Ordoc has left IRC ()
[20:38:59] --> Ordoc has joined #nuvie
[21:09:17] <-- SB-X has left IRC ("casts gate travel")
[21:51:50] --> Kirben has joined #nuvie
[22:00:35] <Ordoc> Kirben you there
[22:00:46] <Kirben> Yes
[22:00:53] <Ordoc> i figured out that debugging problem
[22:01:26] <Ordoc> where it was really slow: http://www.libsdl.org/faq.php?action=listentries&category=4#72
[22:03:11] <-- laxdragon has left IRC ("ZZZZZzzzzzzzzzzzzzzz")
[22:03:15] <Kirben> ah, system locks by DirectX.
[22:03:23] <Ordoc> yeah :)
[22:03:37] <Ordoc> glad i figured it out and it wasnt actuall vis studio hehe
[22:03:54] <Ordoc> s/actuall/actually
[23:10:43] <-- Kirben has left IRC ("System Meltdown")
[23:15:12] --> Kirben has joined #nuvie