void Object_init(Object* self, uint32_t nbCasesX, uint32_t nbCasesY, uint32_t sizeX, uint32_t sizeY) { Drawable* drawable = (Drawable*)self; Drawable_init(drawable, NULL); self->sizeX = sizeX; self->sizeY = sizeY; self->nbCasesX = nbCasesX; self->nbCasesY = nbCasesY; self->tiles = (Tile***)malloc(nbCasesX * sizeof(Tile**)); uint32_t i=0; uint32_t j; for(i=0; i < nbCasesX; i++) { self->tiles[i] = (Tile**)malloc(nbCasesY * sizeof(Tile*)); for(j=0; j < nbCasesY; j++) self->tiles[i][j] = NULL; } drawable->setPosition = &Object_setPosition; drawable->setSize = &Object_setSize; drawable->setStatic = &Object_setStatic; drawable->draw = &Object_draw; drawable->destroy = &Object_destroy; drawable->setSize(drawable, nbCasesX*sizeX, nbCasesY*sizeY); self->updateCollision = &Object_updateCollision; self->info = 0x00; }
Drawable* Drawable_newBoxFromSize(Vector size) { Drawable* newObj = (Drawable*)malloc(sizeof(_Drawable)); Drawable_init(newObj); newObj->_writeBatchDataFunc = writeBatchData; newObj->_getDataSizeFunc = getDataSize; newObj->mShape = Shape_newFromRectangle(Rectangle_createFromXYWH(0, 0, Vector_getX(&size), Vector_getY(&size))); smug_assert(_invariant(newObj)); return newObj; /* smug_assert(GameObject_isExactType(newObj, SMUG_TYPE_SHAPE)); smug_assert(GameObject_isType(newObj, SMUG_TYPE_SHAPE)); smug_assert(GameObject_isType(newObj, SMUG_TYPE_DRAWABLE)); smug_assert(GameObject_isType(newObj, SMUG_TYPE_POSITION)); smug_assert(GameObject_isType(newObj, SMUG_TYPE_OBJECT)); */ }
Drawable* Drawable_newGeneric(void) { Drawable* newObj = (Drawable*)malloc(sizeof(Drawable*)); Drawable_init(newObj); return newObj; }