#ifndef __classConfiguration

#define __classConfiguration

#include <stddef.h>

#include <array.h>

#include <text.h>

#include <char.h>

#include <user.h>

#include <street.h>

#include <console.h>

#include <vector2.h>

#define TOTAL_CLASS_COUNT 7

extern char * __ClassNames[TOTAL_CLASS_COUNT];
extern int __ClassPropertyCount[TOTAL_CLASS_COUNT];
extern char * __ClassPropertyNames[TOTAL_CLASS_COUNT][30];
extern int __ClassPropertyOffsets[TOTAL_CLASS_COUNT][30];
extern int __ClassPropertyOffsets[TOTAL_CLASS_COUNT][30];

#include <string.h>

int getPropertyIndexOfClassIndex( int propertyCount, char ** propertyNames );

void getArrayByClassIndex( int size, void * * voidArray, int * structByteSize, int classIndex );

int getClassIndexByClassName( char * className );

char * getClassName( int classIndex );

int getPropertyCountByClassIndex( int classIndex );

char * * getPropertiesByClassIndex( int classIndex );

int * getPropertyOffsetsByClassIndex( int classIndex );

int getPropertyOffsetByPropertyIndex( int * propertyOffsets, int propertyIndex );

int getPropertyIndexByPropertyName( int classID, char * propertyName );

int * getPropertyDatatypeIndexesByClassIndex( int classIndex );

int getPropertyDatatypeIndex( int * propertyDatatypeIndices, int propertyIndex );

int getMethodCountByClassIndex( int classIndex );

char * * getMethodNamesByClassIndex( int classIndex );


int getMethodIndexByPropertyName( int classID, char * propertyName );

void callMethodOfClass( int classIndex, int methodIndex, void * object );
#endif
