bool CBaseChar::init(CharIndex index) { m_eCharIndex = index; switch(m_eCharIndex) { case Index_Player: m_eNowWeapon = Weapon_Nomal; m_eLook = Look_Right; makeChar("Player",40,20); m_pNowAni = m_pIdel; m_nCurHp = m_nHp = 100; m_nSpeed = 3; break; case Index_Enemy1: m_eNowWeapon = Weapon_Nomal; m_eLook = Look_Right; makeChar("Enemy1",40,10); m_pNowAni = m_pIdel; m_nCurHp = m_nHp = 6; m_nSpeed = 2; break; case Index_Enemy2: m_eNowWeapon = Weapon_Double; m_eLook = Look_Right; makeChar("Enemy2",40,20); m_pNowAni = m_pIdel; m_nCurHp = m_nHp = 9; m_nSpeed = 1; break; case Index_Boss1: m_eNowWeapon = Weapon_Multiple; m_eLook = Look_Right; makeChar("Boss1",40,20); m_pNowAni = m_pIdel; m_nCurHp = m_nHp = 100; m_nSpeed = 3; break; case Index_Boss2: m_eNowWeapon = Weapon_BigMulti; m_eLook = Look_Right; makeChar("Boss2",40,20); m_pNowAni = m_pIdel; m_nCurHp = m_nHp = 200; m_nSpeed = 3; break; } return true; }
uint8_t MD_PZone::getFirstChar(void) // load the first char into the char buffer // return 0 if there are no characters { uint8_t len = 0; PRINTS("\ngetFirst"); // initialise pointers and make sure we have a good string to process _pCurChar = _pText; if ((_pCurChar == NULL) || (*_pCurChar == '\0')) { _endOfText = true; return(0); } _endOfText = false; if (SFX(SCROLL_RIGHT)) _pCurChar += strlen(_pText) - 1; // good string, get the first char into the current buffer len = makeChar(*_pCurChar); if (SFX(SCROLL_RIGHT)) reverseBuf(_cBuf, len); moveTextPointer(); return(len); }
// // ::doFormatLiteral // void doFormatLiteral(ObjectVector *objects, std::string &s) { if(s.size() == 1) { makeChar(objects, s[0]); objects->addToken(OCODE_ACSP_CHARACTER); } else if(!s.empty()) { makeString(objects, s); objects->addToken(OCODE_ACSP_STR); } s.clear(); }
uint8_t MD_PZone::getNextChar(void) // load the next char into the char buffer // return 0 if there are no characters { uint8_t len = 0; PRINTS("\ngetNext "); if (_endOfText) return(0); len = makeChar(*_pCurChar); if (SFX(SCROLL_RIGHT)) reverseBuf(_cBuf, len); moveTextPointer(); return(len); }
// // ::doFormat_p // void doFormat_p(ObjectVector *objects, FormatData &) { SourceExpression::Pointer argExpr = nextExpr(); VariableType::Reference argType = argExpr->getType(); VariableType::BasicType argBT = argType->getBasicType(); bigsint argSize = argType->getSize(pos); if(argBT == VariableType::BT_ARR) { argBT = VariableType::BT_PTR; argType = argType->getReturn()->getPointer(); argExpr = create_value_cast_implicit(argExpr, argType, context, pos); argSize = argType->getSize(pos); } if(argType->getReturn()->getStoreType() == STORE_AUTO) { argType = argType->getReturn()->setStorage(STORE_STATIC)->getPointer(); argExpr = create_value_cast_implicit(argExpr, argType, context, pos); } if(argBT != VariableType::BT_PTR) Error_NP("expected pointer got %s", make_string(argType).c_str()); argExpr->makeObjects(objects, VariableData::create_stack(argSize)); if(argSize == 1) objects->addToken(OCODE_ACSP_NUM_HEX_U); else { objects->addToken(OCODE_STK_SWAP); objects->addToken(OCODE_ACSP_NUM_HEX_U); makeChar(objects, '-'); objects->addToken(OCODE_ACSP_CHARACTER); objects->addToken(OCODE_ACSP_NUM_HEX_U); } }