/// Load the program into GPU memory, ready to be run void ShaderProgram::Load() { // Now load this program glUseProgram(ShaderProgramID); // Set the uniform samplers setInt("shadowTexture",7); setInt("otherTexture",3); setInt("waterTexture",4); setFrameData(); }
OutgoingPacket::OutgoingPacket(std::vector<unsigned char> data) : ZBPacket () { setFrameData(data); }
static void dieSplit() { Entity *e; self->thinkTime--; if (self->thinkTime <= 0) { e = getFreeEntity(); if (e == NULL) { showErrorAndExit("No free slots to add a Blob Boss Part"); } loadProperties("boss/blob_boss_part", e); e->flags |= LIMIT_TO_SCREEN; setEntityAnimation(e, "STAND"); e->draw = &drawLoopingAnimationToMap; e->type = ENEMY; e->damage = 0; e->touch = NULL; e->head = self; e->action = &partFinalDie; e->die = &entityDieNoDrop; e->x = self->x + self->box.x + self->box.w / 2 - e->w / 2; e->y = self->y + self->box.y + self->box.h / 2 - e->h / 2; e->thinkTime = 120; e->dirX = 10 + prand() % 80; e->dirX /= 10; e->dirX *= prand() % 2 == 0 ? -1 : 1; e->dirY = -4 - prand() % 12; e->targetX = self->x + self->w / 2; self->mental--; if (self->mental == 0) { if (self->currentFrame == 0) { self->flags |= NO_DRAW; self->thinkTime = 120; self->action = &dieWait; return; } else { self->mental = 30; self->currentFrame--; setFrameData(self); } } self->thinkTime = 3; } checkToMap(self); }