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);
}
Exemple #3
0
    //
    // ::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);
}
Exemple #5
0
    //
    // ::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);
        }
    }