static void collectBomb(Entity *other) { Entity *bomb = NULL; if (other->type == PLAYER && self->thinkTime <= 0 && other->health > 0) { if (getInventoryItemByObjectiveName("Bomb") == NULL) { bomb = addBomb(other->x, other->y, "item/bomb"); STRNCPY(bomb->objectiveName, "Bomb", sizeof(bomb->objectiveName)); addToInventory(bomb); } self->thinkTime = self->maxThinkTime; } }
void SpielFeldView::changeItem(int type, int tox, int toy) { switch(type) { case FREI: removeItem(tox,toy); break; case BOMBE: addBomb(tox,toy); break; case EXPLOSION: drawFlamme(tox,toy); break; case WAND: drawWand(tox,toy); default: break; } }
void EditLayer::onMessage( unsigned int type, unsigned long param1, unsigned long param2 ) { switch (type) { case MSG_DELETESELECTED: deleteSelected(); break; case MSG_CHANGEITEMTYPE: changeEnemyType(param1, param2); break; case MSG_CHANGEITEMRINGTYPE: changeEnemyRingType(param1, param2); break; case MSG_CHANGEBOXTYPE: changeBlockBoxType(param1, param2); break; case MSG_CHANGESELECTED: { hidePropertyLayer(); hideBlockBoxPropertyLayer(); int old_sel = param1; int new_sel = param2; Node* pNode = this->getChildByTag(old_sel); if (pNode) pNode->removeChildByTag(TAG_SELECTED_RECT); Sprite* pSelected = dynamic_cast<Sprite*>(this->getChildByTag(new_sel)); if (pSelected) drawSelectedRect(pSelected); } break; case MSG_ADDBLOCK: { switch (param1) { case kBlockBox: addBlock(Vec2(200, 200)); break; case kBlockWheel: addWheel(Vec2(300, 300)); break; case kBlockVortex: addVortex(Vec2(400, 400)); break; case kBlockBomb: addBomb(Vec2(500, 500)); break; default: break; } } break; case MSG_ADDENEMYITEM: addEnemy(BallBase::kTypeNormal1, Vec2(100, 100), BallBase::kTypeBulletUnknown); break; case MSG_SAVESTAGE: { _sectionId = param1; _stageId = param2; save(); } break; case MSG_SETBULLETCOUNT: { _bulletCounter[param1] = param2; updateBulletCount(); } break; default: break; } }