#pentagram@irc.freenode.net logs for 30 Sep 2010 (GMT)

Archive Today Yesterday Tomorrow
Pentagram homepage


[02:02:06] <-- Kirben has left IRC ()
[02:04:14] --> Kirben has joined #pentagram
[02:04:14] --- ChanServ gives channel operator status to Kirben
[02:53:09] --> Colourless has joined #pentagram
[02:53:09] --- ChanServ gives channel operator status to Colourless
[04:14:20] <-- Colourless has left IRC (Ping timeout: 255 seconds)
[04:54:10] --> watt has joined #pentagram
[04:54:11] --- ChanServ gives channel operator status to watt
[05:14:41] --> eris_c has joined #pentagram
[05:14:56] <eris_c> Anyone here?
[05:16:21] <-- Kirben has left IRC ()
[05:16:44] <eris_c> Eek! I'm scaring them away!
[05:35:39] --> Kirben has joined #pentagram
[05:35:39] --- ChanServ gives channel operator status to Kirben
[05:48:53] <wjp> hi
[05:50:24] <eris_c> Oh hi! I was going to ask a question about gettin pentagram to recognize my game install directory, but I solved the problem on my own a few minutes ago.
[05:50:31] <wjp> great :-)
[05:51:29] <eris_c> I'm the person who posted on the Exult forums about wanting to help fix bugs if I can.
[05:52:08] <eris_c> I've started looking at the code to try and get an overview of it, but it's rather intimidatingly large. Are there any docs that describe the overall structure?
[05:53:25] <eris_c> I see a few in the docs directory, but they seem at first glance to be from years ago.
[05:55:41] <wjp> most of pentagram is from years ago really :-)
[05:56:16] <wjp> but the main structure is given by the subdirectories
[05:56:47] --> Colourless has joined #pentagram
[05:56:47] --- ChanServ gives channel operator status to Colourless
[05:56:54] <wjp> hi Colourless
[05:57:01] <Colourless> hi
[05:57:03] <eris_c> OK. I can muddle my way through it.
[05:58:09] <wjp> we can give pointers on any specific things you're looking for of course
[05:59:35] <wjp> important things are the kernel which keeps track of memory, objects, processes
[05:59:52] <wjp> the game-related objects are in world/ and world/actors
[06:00:11] <wjp> the game's scripts are called usecode and are executed by code in usecode/
[06:01:45] <wjp> games/ has some miscellaneous game-specific stuff (U8 vs Crusader)
[06:01:48] <-- eris_c has left IRC (Ping timeout: 245 seconds)
[06:22:00] --> eris_c has joined #pentagram
[06:22:43] <-- eris_c has left IRC (Client Quit)
[06:23:01] --> eris_ has joined #pentagram
[06:23:09] --- eris_ is now known as eris_c
[06:23:27] <eris_c> Grr. DSL dropped on me.
[06:26:06] <wjp> welcome back :-)
[06:26:25] <wjp> http://logs.usecode.org/pentagramlog.php
[06:26:42] <eris_c> I don't have any specific questions at the moment, I suppose. I was going to look at the bugtracker list and see if there was anything open that might be simple. The one labelled "no alcohol metabolization" seems promising.
[06:27:02] <eris_c> Yeah, I already checked the IRC logs. Handy.
[06:28:03] <wjp> this one is likely mostly controlled by usecode scripts
[06:29:30] <eris_c> Hmmm.
[06:31:07] <eris_c> Is there a usecode decompiler, like for Exult?
[06:31:22] <wjp> we have a disassembler
[06:31:53] <eris_c> In tools/disasm I assume. Looking at it now.
[06:32:01] <wjp> yup
[06:32:03] <wjp> U8's usecode is a bit more advanced than U7's, but also cleaner in some sense
[06:32:38] <wjp> it is multithreaded; multiple scripts run at the same time
[06:33:02] <wjp> (but pentagram itself is single-threaded)
[06:34:29] <wjp> if you want to debug usecode, you'll want to use some of pentagram's console commands
[06:35:01] <wjp> you can open the console with ~
[06:35:29] <wjp> it has tab-completion. The relevant commands are likely those which start with Kernel:: and UCMachine::
[06:35:47] <eris_c> I saw where a bunch of console commands were being initialized in the startup code. Is there any built-in help or list of command anywhere?j
[06:36:03] <wjp> usecode debugging likely has a bit of a steep learning curve, by the way
[06:36:15] <eris_c> I figured. New language to learn.
[06:36:26] <wjp> Console::CmdList gives you a list of console commands
[06:37:00] <eris_c> But it's all fairly new to me. When I worked as a programmer, I did C and Fortran, so C++ by itself is new to me.
[06:39:03] <eris_c> I'd really gotten out of the computer industry entirely a few years ago - jsut burned out on it - but I started playing games and kept thinking "I could do better than that."
[06:39:35] <eris_c> That thought finally go the better of me, and for a few months now I've been learning C++, SDL, OpenGL, and other misc things to try and get up to speed.
[06:42:57] <wjp> cool
[06:43:14] <wjp> I have to go to work
[06:43:42] <wjp> (western Europe timezone, so I just woke up)
[06:44:42] <wjp> some last quick remarks: I don't know how drunkenness is implemented, but it is plausible the game will create a specific usecode process for it that lives while you're drunk
[06:45:16] <wjp> so you may be able to get a handle on it by comparing the running processes in a quiet area when you're not drunk, and when you are
[06:45:18] <eris_c> Thanks for the tips. I'm going to play around with things for a while before heading to bed.
[06:45:37] <wjp> (the 'quiet area' is important because otherwise there will be tons of processes around controlling things/people around you)
[06:46:09] <wjp> Kernel::listProcesses lists the running processes
[06:46:28] <wjp> they'll be marked with their class, where a UsecodeProcess is likely what you're looking for
[06:47:01] <wjp> processes also have an 'item', which is the item/actor they are attached to. Item 0 means global, item 1 is the avatar
[07:10:30] <eris_c> Bye. Thanks for the help.
[07:10:31] <-- eris_c has left IRC (Quit: leaving)
[08:52:09] <-- jvlee has left IRC (Quit: jvlee)
[14:56:36] <-- Kirben has left IRC ()
[15:29:53] <-- Colourless has left IRC (Quit: casts improved invisibility)
[15:36:02] --> Colourless has joined #pentagram
[15:36:02] --- ChanServ gives channel operator status to Colourless
[18:48:26] --> Fingolfin has joined #pentagram
[18:48:26] --- ChanServ gives channel operator status to Fingolfin
[18:51:16] <-- Fingolfin has left IRC (Remote host closed the connection)
[18:51:38] --> Fingolfin has joined #pentagram
[18:51:38] --- ChanServ gives channel operator status to Fingolfin
[20:15:29] --> Fing has joined #pentagram
[20:15:29] --- ChanServ gives channel operator status to Fing
[20:17:36] <-- Fingolfin has left IRC (Ping timeout: 240 seconds)
[20:17:36] --- Fing is now known as Fingolfin
[20:17:41] <-- Fingolfin has left IRC (Client Quit)