TFiniteAutomaton& TFiniteAutomaton::Iterate() {
    // FIXME: expected exactly one final state
    const size_t mySize = Size(), myFinal = *FinalStates.begin();
    Resize(mySize + 2);

    AddTransition(mySize, StartState);
    AddTransition(myFinal, mySize + 1);
    AddTransition(myFinal, StartState);
    AddTransition(mySize, mySize + 1);

    SetStartState(mySize);
    SetFinalState(myFinal, false);
    SetFinalState(mySize + 1);

    return *this;
}
void PxGraphicsRoot::Init()
{
	Window = PxWindow::Window();
	Window->Init(
		PxConfiguration::GetLong("g_screenwidth"),
		PxConfiguration::GetLong("g_screenheight"),
		PxConfiguration::GetLong("g_bpp"),
		PxConfiguration::GetLong("g_debug_window" ) == 0
	);
	PxExtensionManager::Init();
	PxImageProvider::Init();
	PxTextureManager::Init();
	PxTextWriter::Init();
	PxModelManager::Init();
	PxSceneRegulator * pRegulator = new PxSceneRegulator();
	Window->EnableVSync();
	SetStartState(pRegulator);
}
TFiniteAutomaton& TFiniteAutomaton::operator |= (const TFiniteAutomaton& rhs) {
    // FIXME: expected exactly one final state from both the automata
    const size_t mySize = Size(), myFinal = *FinalStates.begin();
    Import(rhs);
    const size_t newSize = Size();
    Resize(newSize + 2);

    AddTransition(newSize, StartState);
    AddTransition(newSize, mySize + rhs.StartState);
    AddTransition(myFinal, newSize + 1);
    AddTransition(mySize + *rhs.FinalStates.begin(), newSize + 1);

    SetStartState(newSize);
    SetFinalState(myFinal, false);
    SetFinalState(mySize + *rhs.FinalStates.begin(), false);
    SetFinalState(newSize + 1);

    return *this;
}
Exemple #4
0
FrogBoss::FrogBoss(Level* levelData, mjResourceManager* resourceManager)
: KosmoObject(MJ_AABB, resourceManager, levelData)
{
    srand(time(0));


    model = resourceManager->FetchModel("entities/evilFrog/evilfrog.mesh.xml");

    glTexture = resourceManager->FetchTexture("entities/evilFrog/evilfrog.png", GL_REPEAT);//("/sdcard/mjEngineCPP/bluesky/wandering_cloud0.png"); //
	for (unsigned i = 0; i < model->meshes.size(); i++)
	{
		model->meshes[i]->glTexture = glTexture;
	}

    FrogBossAutomatonState* waitForLandingState = new FrogBossAutomatonWaitForLandingState(this);
    LOGI("%s %d: new %s", __FILE__, __LINE__, "frogBossLandingState");

    FrogBossAutomatonState* huntState = new FrogBossAutomatonHuntState(this);
    LOGI("%s %d: new %s", __FILE__, __LINE__, "frogBossHuntState");

    FrogBossAutomatonState* slamState = new FrogBossAutomatonSlamState(this);
    LOGI("%s %d: new %s", __FILE__, __LINE__, "frogBossSlammingState");



    states.push_back(waitForLandingState);
    states.push_back(huntState);
    states.push_back(slamState);
    SetStartState(waitForLandingState);

    MatchAABBToModel();

    soundSource = new mjSoundSource();
    LOGI("%s %d: new %s", __FILE__, __LINE__, "soundSource");

    soundSource->attenuation = 0.001; // Essentially heard everywhere
    soundSource->Load(resourceManager->FetchSound("sounds/ribbit.wav"), 0);

    gravity.y = -9.81;
}
Exemple #5
0
static void Init(CJcScanner* scanner){
	jc_int i;
	scanner->EOL = '\n';
	scanner->eofSym = 0;
	scanner->maxT = 87;
	scanner->noSym = 87;
	for (i = 65; i <= 90; ++i) SetStartState(&scanner->start, i, 1);
	for (i = 95; i <= 95; ++i) SetStartState(&scanner->start, i, 1);
	for (i = 97; i <= 122; ++i) SetStartState(&scanner->start, i, 1);
	for (i = 49; i <= 57; ++i) SetStartState(&scanner->start, i, 71);
	SetStartState(&scanner->start, 48, 72);
	SetStartState(&scanner->start, 39, 2);
	SetStartState(&scanner->start, 34, 9);
	SetStartState(&scanner->start, 46, 73);
	SetStartState(&scanner->start, 62, 74);
	SetStartState(&scanner->start, 60, 75);
	SetStartState(&scanner->start, 33, 76);
	SetStartState(&scanner->start, 37, 77);
	SetStartState(&scanner->start, 94, 78);
	SetStartState(&scanner->start, 38, 79);
	SetStartState(&scanner->start, 42, 80);
	SetStartState(&scanner->start, 45, 81);
	SetStartState(&scanner->start, 43, 82);
	SetStartState(&scanner->start, 124, 83);
	SetStartState(&scanner->start, 47, 84);
	SetStartState(&scanner->start, 61, 85);
	SetStartState(&scanner->start, 126, 61);
	SetStartState(&scanner->start, 40, 62);
	SetStartState(&scanner->start, 41, 63);
	SetStartState(&scanner->start, 123, 64);
	SetStartState(&scanner->start, 125, 65);
	SetStartState(&scanner->start, 91, 66);
	SetStartState(&scanner->start, 93, 67);
	SetStartState(&scanner->start, 58, 86);
	SetStartState(&scanner->start, 59, 68);
	SetStartState(&scanner->start, 44, 69);
	SetStartState(&scanner->start, 63, 70);
	SetStartState(&scanner->start, EoF, -1);
	SetKeyword(&scanner->keywords, "auto", 6);
	SetKeyword(&scanner->keywords, "break", 7);
	SetKeyword(&scanner->keywords, "case", 8);
	SetKeyword(&scanner->keywords, "char", 9);
	SetKeyword(&scanner->keywords, "const", 10);
	SetKeyword(&scanner->keywords, "continue", 11);
	SetKeyword(&scanner->keywords, "default", 12);
	SetKeyword(&scanner->keywords, "do", 13);
	SetKeyword(&scanner->keywords, "double", 14);
	SetKeyword(&scanner->keywords, "else", 15);
	SetKeyword(&scanner->keywords, "enum", 16);
	SetKeyword(&scanner->keywords, "extern", 17);
	SetKeyword(&scanner->keywords, "float", 18);
	SetKeyword(&scanner->keywords, "for", 19);
	SetKeyword(&scanner->keywords, "goto", 20);
	SetKeyword(&scanner->keywords, "host", 21);
	SetKeyword(&scanner->keywords, "if", 22);
	SetKeyword(&scanner->keywords, "int", 23);
	SetKeyword(&scanner->keywords, "long", 24);
	SetKeyword(&scanner->keywords, "register", 25);
	SetKeyword(&scanner->keywords, "return", 26);
	SetKeyword(&scanner->keywords, "share", 27);
	SetKeyword(&scanner->keywords, "short", 28);
	SetKeyword(&scanner->keywords, "signed", 29);
	SetKeyword(&scanner->keywords, "sizeof", 30);
	SetKeyword(&scanner->keywords, "static", 31);
	SetKeyword(&scanner->keywords, "struct", 32);
	SetKeyword(&scanner->keywords, "switch", 33);
	SetKeyword(&scanner->keywords, "typedef", 34);
	SetKeyword(&scanner->keywords, "union", 35);
	SetKeyword(&scanner->keywords, "unsigned", 36);
	SetKeyword(&scanner->keywords, "void", 37);
	SetKeyword(&scanner->keywords, "volatile", 38);
	SetKeyword(&scanner->keywords, "while", 39);
	SetKeyword(&scanner->keywords, "alignof", 86);

	scanner->tvalLength = 128;
	scanner->tval = (char*)g_oInterface.Malloc(scanner->tvalLength); /* text of current token */

	/* HEAP_BLOCK_SIZE byte heap + pointer to next heap block */
	scanner->pHeap = g_oInterface.Malloc(HEAP_BLOCK_SIZE + sizeof(void*));
	scanner->pFirstHeap = scanner->pHeap;
	scanner->pHeapEnd = (void**) (((char*) scanner->pHeap) + HEAP_BLOCK_SIZE);
	*scanner->pHeapEnd = 0;
	scanner->pHeapTop = scanner->pHeap;
	if(sizeof(CJcToken) > HEAP_BLOCK_SIZE){
		g_oInterface.PrintError(0, "--- Too small HEAP_BLOCK_SIZE\n");
		g_oInterface.Abort();
	}

	scanner->pos = -1;
	scanner->line = 1;
	scanner->col = 0;
	scanner->oldEols = 0;
}