Lost Souls directory structure

From LSWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 13:21, 11 January 2007 (edit)
Chaos (Talk | contribs)
(/daemon)
← Previous diff
Revision as of 13:22, 11 January 2007 (edit)
Chaos (Talk | contribs)
(/daemon)
Next diff →
Line 38: Line 38:
Two of the universal characteristics of daemons is that they are never cloned and they are never in-game items. I can conceive of circumstances that could create an exception to the former, but not the latter. Two of the universal characteristics of daemons is that they are never cloned and they are never in-game items. I can conceive of circumstances that could create an exception to the former, but not the latter.
-If you need to refer to a daemon that lives in /daemon in code, you will almost always be using the "service" macros for them, defined in ''/lib/services.h'', which look like Daemon_Time, Daemon_Autoheal, Daemon_Shutdown, and so on. Another daemon, ''/daemon/services'', manages these.+If you need to refer to a daemon that lives in /daemon in code, you will almost always be using the "service" macros for them, defined in ''/lib/services.h'', which look like Daemon_Time, Daemon_Autoheal, Daemon_Shutdown, and so on. Another daemon, ''/daemon/services'', manages these. These, besides being prettier than string pathnames, use a special mechanism to make them faster than other methods you might use for referring to daemons.
Read access [[privilege]]: [[read_lib]] Read access [[privilege]]: [[read_lib]]

Revision as of 13:22, 11 January 2007

This structure of this file mirror the LS directory structure. If you don't know how to navigate the directory structure, please read the Developer Primer.

This page is going to need a lot more work, but it's worthwhile work, especially since I don't actually the actual organizational principles behind half this stuff.

NOTE: THIS PAGE NEEDS WAY BETTER FORMATTING.

Contents

/d

This is where the world is. The "d" stands for "domain", which apparently used to mean something. Chaos claims that this stands for "deployed", but we all know he's a dirty liar.

Read access privilege: read_d

Write access privilege: write_d

/d/Affiliations

This is where affiliations (associations, guilds, offices, racial and other faculties).

Read access privilege: read_sensitive

Write access privilege: write_sensitive

/d/Almeria

This is where the main map and the main world is, though it's all in subdirectories. Take a look, it should be pretty clear.

/d/System

This is where Bytehaven is, which is an area with a few handy developer bits like the test character register, and the Banishment tablet. There is also a project called Public that has some 'utility' rooms.

/d/Misc

Things that don't belong elsewhere, like projects that are primarily about items (Lzrelekoi) or wandering areas (the Vanishing Tower).

/d/(various planes)

Like Almeria, except not on Almeria.

/daemon

This is where daemons are. What are daemons you ask? Good question. Basically I think they are objects that control, handle, and store data. Right?

Chaos responds: Something like that. Our daemons are probably best understood by reference to Unix system daemons, which are programs that run continuously (usually) and handle some particular task; the most popular daemon is the HTTP daemon, or web server. Our daemons are similar: they're objects that hang out and handle some particular function. /daemon/armour manages the armour subsystem, tracking the armour type and armour style definitions; /daemon/weapons manages the weapon subsystem, tracking weapon types, weapon sizes, and ammunition types. These are examples of a class of daemon called broker daemons because their main function is handling definition objects and brokering requests for them; they're mainly found in /daemon. Control daemons are another major class; these live in the /dmn directories of individual projects and serve as central managers for the project. Other daemons just package up some similar functionality, such as /daemon/time; some manage ongoing or specific-purpose processes of the game, such as /daemon/cron, /daemon/autoheal, and /daemon/shutdown.

Two of the universal characteristics of daemons is that they are never cloned and they are never in-game items. I can conceive of circumstances that could create an exception to the former, but not the latter.

If you need to refer to a daemon that lives in /daemon in code, you will almost always be using the "service" macros for them, defined in /lib/services.h, which look like Daemon_Time, Daemon_Autoheal, Daemon_Shutdown, and so on. Another daemon, /daemon/services, manages these. These, besides being prettier than string pathnames, use a special mechanism to make them faster than other methods you might use for referring to daemons.

Read access privilege: read_lib

Write access privilege: write_lib

/def

This is where definition files reside. Definitions are abstract files that determine certain generic properties of particular files. Races, anatomies, weapon types, damage types, are all examples of things that have definitions.

Read access privilege: read_lib

Write access privilege: write_lib

/etc

A few general lib files are here, like item.h

/lib

More particular, but still very general, lib files are here. Project lib files can usually be found in /d/Almeria/lib, or /d/Affiliations/lib, or something of that sort.

Read access privilege: read_lib

Write access privilege: write_lib

/lib/dev

This is where developer work-in-progress lib files go; everyone has write access to this directory.

Read access privilege: standard

Write access privilege: standard

/lib/descriptors

This is where the header files that are automatically generated by the descriptor definitions in /def/descriptor are kept. Most header files are manually maintained; these are unusual in being created by the system.

/mod

This hierarchy contains component modules, mainly to be assembled into complete inheritables by things in /std.

Read access privilege: read_lib

Write access privilege: write_lib

/obj

This hierarchy mainly contains files that are intended to be physical objects in the game world; weapons, armour, comestibles, and so on. There are a few special cases.

Read access privilege: read_lib

Write access privilege: write_lib

/obj/extensions

This is where standard system-wide extension objects are kept. Extensions are a way of loading functionality onto objects using attached, subsidiary objects; for instance, all weapon functionality is tracked by a weapon extension. This allows any object to be treated as an improvised weapon if need be.

/obj/interfaces

System-level input dialog interfaces are kept here. These are objects whose purpose is to handle an interactive dialog; the best example is /obj/interfaces/creation.c, which is the character generation interface.

/obj/master

This is where things like the master object and the simul_efun object are kept -- crucial system things.

Read access privilege: read_secure

Write access privilege: write_secure

/pub

This is a public directory hierarchy where files can be exchanged and freely edited, and so on. One interesting subdirectory is /pub/defunct, where we generally put the /w directories of former developers.

Read access privilege: read

Write access privilege: standard

/std

/sys

/tmp

A public directory for temporary files. Files in this directory are cleared out periodically.

Read access privilege: read

Write access privilege: standard

/txt

/usr

User files, mainly incarnos and kept-item save files, are in this hierarchy.

Read access privilege: player_files

Write access privilege: player_files

/w

This is where developer workspaces go; your personal directory, /w/yourname, is under this hierarchy. Originally the 'w' stood for 'wizard', back when we used such ill-advised terminology for developers, and the whole 'workspace' thing is just so we don't have to change the directory name.

Read access privilege: read_w

Write access privilege: write_w

Personal tools