A
          / \      _                                               Nemesis on 
          | |     | |  _______   _        _   _______    _______   _    _______
          | |\    | | |   ____| |  \    /  | |   ____|  /   ____| | |  /   ____|
 /-------/-------------------------------------------------------------------,
O= Home <=XX|  About  News  Pics  Adventurers  Wizards  Download  Connect     >
 \-------\-------------------------------------------------------------------'
          | |   \   | |  |____  | |      | | |  |____   ___ \  \  | |  ___ \  \
          | |     \_| |_______| |_|      |_| |_______| |_______/  |_| |_______/
          \ /
           V  

Documentation Area

Document Path: /doc/room2/page18


<
                                  CHAPTER 1                                     
Extended Room Features:

   Until now we have only talked about the basic room features. All these
   features are available in every room. With these functions you are able
   to create quite good rooms. But the extended features show the real power
   of the room2 support. 

   Annotation:
   Kiri says in August 2016: I'm not so sure about the last sentence in the
   above paragraph! ;-)
   Real coders ;-) don't need/use/like EXTD_ROOM for following reasons:
   - EXTD_ROOM changes from inheritance to including a lot of code,
   - BUT inheritance is much faster,
   - inheritance saves memory,
   - if you want more than those "features" offer, real coders ;-) often get
     stuck as you can't overwrite the original functions when using includes,
   - then you have to do much more on your own,
   - most "features" can be coded VERY easily,
   - real coders can create all those "features" of EXTD_ROOM with much
     more features! ;-)
   - to be continued ...

   If you want to use one of the following features you have to define it
   by its name and define EXTD_ROOM, both before the include <room2.h>
   line. But with this define you change the way the room support is
   provided from inherit to include (see the second chapter).

   Therefore there are some differences, because using include you are not
   able to overwrite the functions init() and long(str), which are needed
   for extra actions and extra descriptions. 

   You have to replace "long(str) { ::long(str);" by "extra_long(str) {"
   and you have to
#define EXTRA_LONG extra_long(str);
   before the
#include <room2.h>
   line.

   You have to replace "init() { ::init();" by "extra_init() {" and you
   have to
#define EXTRA_INIT extra_init();
   before the
#include <room2.h>

   Annotation in August 2016:
   See page 15 of this tutorial or https://nemesis.de/lpc/doc/room2/page15 :
   Also without EXTD_ROOM "extra_init()" is correct (now)!

   Changed/modified/modernised by Kiri in August 2016.

See also:
>

This page was generated in LPC

Imprint / Impressum