#include "SFBTypes.h"
#include "SFBAssert.h"


Go to the source code of this file.
| Data Structures | |
| struct | GRL | 
| A GRL is a "General Reflex Locator".  More... | |
| struct | SFBGRLMasterTable | 
| The description of all the known arrays-of-PacketHandler's 'reflex tables'.  More... | |
| struct | SFBDispatchEntry | 
| An SFBDispatchEntry describes an SFB reflex.  More... | |
| class | SFBReactor | 
| The SFBReactor manages the SFB reflex triggering system: It determines how an SFB will react to any given packet type.  More... | |
| class | SFBBrainReflex | 
| A 'convenience class' (with a prebuilt instance Brain) which provides a means of declaring reflexes that trigger at the "brain" -- i.e., after the individual faces and the Spine.  More... | |
| class | SFBSpineReflex | 
| A 'convenience class' (with a prebuilt instance Spine) which provides a means of declaring reflexes that trigger at the "spine" -- i.e., after the individual faces, but before the Brain.  More... | |
| Defines | |
| #define | MAX_GRL_TABLES 7 | 
| The maximum number of tables of GRLs that can be defined. | |
| #define | MAX_REACTORS 200 | 
| #define | MAX_CASUAL_REFLEXES 10 | 
| The maximum number of packet handlers that can be used in reflexes 'casually' -- i.e., without making a packet handler array and calling SFBReactor::reflexes() (which see). | |
| #define | TRIGGER_SET_TYPE s16 | 
| #define | MAX_NESTED_TRIGGERS (sizeof(TRIGGER_SET_TYPE)*8) | 
| Typedefs | |
| typedef void(* | PacketHandler )(u8 *packet) | 
| A pointer to a function that handles packets. | |
| typedef void(* | DispatchHandler )(u8 *packet, u8 face) | 
| Functions | |
| bool | isNone (GRL g) | 
| GRL | makeGRL (u8 table, u8 entry) | 
| void | initGRL (GRL &g, u8 table=0, u8 entry=0) | 
| void | reflex (const char type, PacketHandler ph, int flags=SFBReactor::TRIGGER_SPINE) | 
| Equivalent to Body.reflex(type,ph,flags). | |
| Variables | |
| SFBReactor | Body | 
| The 'central locus' for reacting to packets. | |
| SFBBrainReflex | Brain | 
| An instance of SFBBrainReflex (which see) for creating 'brain level' reflexes. | |
| SFBSpineReflex | Spine | 
| An instance of SFBSpineReflex (which see) for creating 'spinal' reflexes. | |
| #define MAX_GRL_TABLES 7 | 
The maximum number of tables of GRLs that can be defined.
Calls to SFBReactor::reflexes draw against this limit. This value consumes BODYRAM at the rate of 5*MAX_GRL_TABLES.
| typedef void(* PacketHandler)(u8 *packet) | 
A pointer to a function that handles packets.
This is the signature of user-defined 'reflexes'