コード例 #1
0
ファイル: script_instance.cpp プロジェクト: Ayutac/OpenTTD
/* static */ bool ScriptInstance::LoadObjects(HSQUIRRELVM vm)
{
	SlObject(NULL, _script_byte);
	switch (_script_sl_byte) {
		case SQSL_INT: {
			int value;
			SlArray(&value, 1, SLE_INT32);
			if (vm != NULL) sq_pushinteger(vm, (SQInteger)value);
			return true;
		}

		case SQSL_STRING: {
			SlObject(NULL, _script_byte);
			static char buf[256];
			SlArray(buf, _script_sl_byte, SLE_CHAR);
			if (vm != NULL) sq_pushstring(vm, OTTD2SQ(buf), -1);
			return true;
		}

		case SQSL_ARRAY: {
			if (vm != NULL) sq_newarray(vm, 0);
			while (LoadObjects(vm)) {
				if (vm != NULL) sq_arrayappend(vm, -2);
				/* The value is popped from the stack by squirrel. */
			}
			return true;
		}

		case SQSL_TABLE: {
			if (vm != NULL) sq_newtable(vm);
			while (LoadObjects(vm)) {
				LoadObjects(vm);
				if (vm != NULL) sq_rawset(vm, -3);
				/* The key (-2) and value (-1) are popped from the stack by squirrel. */
			}
			return true;
		}

		case SQSL_BOOL: {
			SlObject(NULL, _script_byte);
			if (vm != NULL) sq_pushinteger(vm, (SQBool)(_script_sl_byte != 0));
			return true;
		}

		case SQSL_NULL: {
			if (vm != NULL) sq_pushnull(vm);
			return true;
		}

		case SQSL_ARRAY_TABLE_END: {
			return false;
		}

		default: NOT_REACHED();
	}
}
コード例 #2
0
ファイル: main.cpp プロジェクト: Gabrielle7/projetoCG
//-------------------- FUNCOES: GERAIS --------------------//
GLvoid Init() { //Preparacao da cena
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //cor de fundo preta
    glEnable(GL_DEPTH_TEST); //ativa teste de prfundidade
    glDepthFunc(GL_LESS); //especifica a comparação de profundidade: mostra se for menor
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_RESCALE_NORMAL); //normalização dos vetores
    glShadeModel(GL_SMOOTH); //Rendering de Gourard

    //inicia valores para câmera
    obsX = width/2;
    obsY = height/2;
    obsZ = width/3;
    centerX = width/2;
    centerY = height/2;
    centerZ = -width;

    glViewport(0.0, 0.0, width, height); //define tamanho e localização da viewport

    glMatrixMode(GL_PROJECTION);  //define que matriz é de projecao
    glLoadIdentity();
    glOrtho(0, width, 0, height, -1, width*3); //Define projecao ortogonal para mapear coordenadas do mundo para coordenadas da tela

    CreateRoom(); //cria vertices/poligonos do cenario base
    LoadObjects(); //carrega objetos

    Lighting(); //ilumina cena
    Textures(); //aplica textura à cena
}
コード例 #3
0
bool eae6320::Graphics::Initialize( const HWND i_renderingWindow )
{
	s_renderingWindow = i_renderingWindow;

	// Create an OpenGL rendering context
	if ( !CreateRenderingContext() )
	{
		goto OnError;
	}

	// Load any required OpenGL extensions
	{
		std::string errorMessage;
		if ( !OpenGlExtensions::Load( &errorMessage ) )
		{
			UserOutput::Print( errorMessage );
			goto OnError;
		}
	}

	if (!LoadObjects())
	{
		goto OnError;
	}

	return true;

OnError:

	ShutDown();
	return false;
}
コード例 #4
0
ファイル: ObjectManager.cpp プロジェクト: CraigCraig/OpenRCT2
    bool LoadObjects(const rct_object_entry * entries, size_t count) override
    {
        // Find all the required objects
        size_t numRequiredObjects;
        auto requiredObjects = new const ObjectRepositoryItem *[OBJECT_ENTRY_COUNT];
        if (!GetRequiredObjects(entries, requiredObjects, &numRequiredObjects))
        {
            delete[] requiredObjects;
            return false;
        }

        // Create a new list of loaded objects
        size_t numNewLoadedObjects;
        Object * * loadedObjects = LoadObjects(requiredObjects, &numNewLoadedObjects);

        delete[] requiredObjects;

        if (loadedObjects == nullptr)
        {
            UnloadAll();
            return false;
        }
        else
        {
            SetNewLoadedObjectList(loadedObjects);
            UpdateLegacyLoadedObjectList();
            UpdateSceneryGroupIndexes();
            reset_type_to_ride_entry_index_map();
            log_verbose("%u / %u new objects loaded", numNewLoadedObjects, numRequiredObjects);
            return true;
        }
    }
コード例 #5
0
ファイル: keyring-database.c プロジェクト: Bhumi28/sra-tools
rc_t KeyRingDatabaseLoad ( struct KeyRingData* self, const struct KDirectory* dir, const char* path )
{
    VDBManager* innerMgr;
    rc_t rc = VDBManagerMakeUpdate( &innerMgr, (KDirectory*)dir );
    if (rc == 0)
    {
        rc_t rc2;
        const VDatabase* db;
        rc = VDBManagerOpenDBRead(innerMgr, & db, NULL, "%s", path);
        if (rc == 0)
        {
            rc = LoadProjects(&self->projects, db);
            if (rc == 0)
                rc = LoadObjects(&self->objects, db);
            /*TODO: LoadKeys */
            rc2 = VDatabaseRelease(db);
            if (rc == 0)
                rc = rc2;
        }
        rc2 = VDBManagerRelease(innerMgr);
        if (rc == 0)
            rc = rc2;
    }

    return rc;
}
コード例 #6
0
ファイル: script_instance.cpp プロジェクト: Ayutac/OpenTTD
/* static */ void ScriptInstance::LoadEmpty()
{
	SlObject(NULL, _script_byte);
	/* Check if there was anything saved at all. */
	if (_script_sl_byte == 0) return;

	LoadObjects(NULL);
}
コード例 #7
0
ファイル: ModelLoader.cpp プロジェクト: wolves3d/idea
void CModel::Load( const char * szFile )
{
    CXMLElement * pModelXML = NULL;
    g_pXMLWrapper->LoadXML( szFile, &pModelXML );

    if ( !pModelXML )
        return;

    CXMLElement * pMeshXML = pModelXML->GetChild( "Mesh" );

    if ( pMeshXML )
    {
        CXMLAttr * pMeshAttr = pMeshXML->GetAttr( "File" );

        if ( pMeshAttr )
        {
            LoadObjects( pMeshAttr->GetValue() );
        }

        //----------------------------------------------------------------------
        // Tip: Читаем материалы
        //----------------------------------------------------------------------
        for ( uint n = 0; n < pMeshXML->GetNumChilds(); ++n )
        {
            LoadMaterial( pMeshXML->GetChild( n ) );
        }
    }

    //--------------------------------------------------------------------------
    //
    //--------------------------------------------------------------------------
    CXMLElement * pAnimXML = pModelXML->GetChild( "Animations" );

    if ( pAnimXML )
    {
        for ( uint n = 0; n < pAnimXML->GetNumChilds(); ++n )
        {
            CXMLElement * pCurAnimXML = pAnimXML->GetChild( n );

            CXMLAttr * pFileAttr = pCurAnimXML->GetAttr( "File" );
            CXMLAttr * pNameAttr = pCurAnimXML->GetAttr( "Name" );

            CAnim * pAnim = NEW CAnim;

            if ( pAnim->Load( pFileAttr->GetValue() ) )
            {
                pAnim->SetName( pNameAttr->GetValue() );
                AddAnim( pAnim );
                PlayAnim( "test_anim" );
                continue;
            }

            DEL( pAnim );
        }
    }

    DEL( pModelXML );
}
コード例 #8
0
ファイル: ObjectMan.cpp プロジェクト: tygill/Racer
ObjectMan::ObjectMan()
{
	LoadObjects();
	cout << "Collidable Objects:" << endl;
	for (int i = 0; i < collidables.size(); i++)
	{
		cout << "\t" << collidables[i]->GetId() << endl;
	}
	cout << endl;
}
コード例 #9
0
ファイル: ObjectMan.cpp プロジェクト: spartacus125/Racer_v3
ObjectMan::ObjectMan()
{
	glEnable(GL_TEXTURE_2D);
	
	LoadObjects();
	cout << "Collidable Objects:" << endl;
	for (int i = 0; i < collidables.size(); i++)
	{
		cout << "\t" << collidables[i]->GetId() << endl;
	}
	cout << endl;
}
コード例 #10
0
ファイル: ai_sl.cpp プロジェクト: dolly22/openttd-sai
static void Load_AIPL()
{
	CompanyID index;
	while ((index = (CompanyID)SlIterateArray()) != (CompanyID)-1) {
		SlObject(NULL, _ai_company);

		if (!Company::IsValidAiID(index)) continue;
		SlObject(NULL, _ai_byte);
		/* Check if there was anything saved at all. */
		if (_ai_sl_byte == 0) continue;
		LoadObjects();
	}
}
コード例 #11
0
ファイル: ai_sl.cpp プロジェクト: dolly22/openttd-sai
static bool LoadObjects()
{
	SlObject(NULL, _ai_byte);
	switch (_ai_sl_byte) {
		case SQSL_INT: {
			int value;
			SlArray(&value, 1, SLE_INT32);
			return true;
		}

		case SQSL_STRING: {
			SlObject(NULL, _ai_byte);
			static char buf[256];
			SlArray(buf, _ai_sl_byte, SLE_CHAR);
			return true;
		}

		case SQSL_ARRAY:
			while (LoadObjects()) { }
			return true;

		case SQSL_TABLE:
			while (LoadObjects()) { LoadObjects(); }
			return true;

		case SQSL_BOOL:
			SlObject(NULL, _ai_byte);
			return true;

		case SQSL_NULL:
			return true;

		case SQSL_ARRAY_TABLE_END:
			return false;

		default: SlErrorCorrupt("Invalid AI data type");
	}
}
コード例 #12
0
ファイル: ai_instance.cpp プロジェクト: andrew889/OpenTTD
void AIInstance::Load(int version)
{
	if (this->engine == NULL || version == -1) {
		LoadEmpty();
		return;
	}
	HSQUIRRELVM vm = this->engine->GetVM();

	SlObject(NULL, _ai_byte);
	/* Check if there was anything saved at all. */
	if (_ai_sl_byte == 0) return;

	sq_pushinteger(vm, version);
	LoadObjects(vm);
	this->is_save_data_on_stack = true;
}
コード例 #13
0
ファイル: maps.cpp プロジェクト: nmakoto/Epsilon5
void TMaps::LoadNextMap() {
    MapStatus = MS_Loading;
    if (MapFiles.size() == 0) {
        throw UException("No maps found");
    }
    CurrentMap ++;
    if (CurrentMap >= MapFiles.size()) {
        CurrentMap = 0;
    }
    emit ClearObjects();
    emit ClearBorders();
    LoadConfig("maps/" + MapFiles[CurrentMap] + "/config.ini");
    LoadObjects("maps/" + MapFiles[CurrentMap] + "/objects.txt");
    LoadRespPoints("maps/" + MapFiles[CurrentMap] + "/points.txt");
    emit SpawnBorders(GetMapSize());
    MapStatus = MS_Ready;
    emit MapLoaded();
}
コード例 #14
0
ファイル: VCAConfigure.cpp プロジェクト: anyboo/UCADemo
HRESULT CVCAConfigure::DoLoad( DWORD dwEngId )
{
	// Now assign all libvca structs to internal jobbies
	VCA5_APP_ENGINE_CONFIG *pCfg = &(m_EngineConfig[dwEngId]);

	LoadZones( dwEngId, &(pCfg->Zones) );
	LoadRules( dwEngId, &(pCfg->Rules) );
	LoadCounters( dwEngId, &(pCfg->Counters) );
	LoadCalibration( dwEngId, &(pCfg->CalibInfo) );
	LoadObjects( dwEngId, &(pCfg->ClsObjects) );
	LoadTamper( dwEngId, &(pCfg->TamperInfo) );
	LoadSceneChange( dwEngId, &(pCfg->SceneChangeInfo) );
	LoadAdvanced( dwEngId, &(pCfg->AdvInfo) );
	LoadFunction( dwEngId, &(pCfg->ulFunction) );

//	UnSquishIds( pCfg );


	return S_OK;
}
コード例 #15
0
ファイル: TitleEditor.cpp プロジェクト: Wirlie/OpenRCT2
static void window_title_editor_mouseup(rct_window * w, rct_widgetindex widgetIndex)
{
    bool commandEditorOpen = (window_find_by_class(WC_TITLE_COMMAND_EDITOR) != nullptr);
    switch (widgetIndex)
    {
    case WIDX_TITLE_EDITOR_CLOSE:
        window_close(w);
        break;

    //////////////////////////////////////////////////////////////////////////////////////////////////////
    // Presets tab
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    case WIDX_TITLE_EDITOR_NEW_BUTTON:
        if (!commandEditorOpen)
        {
            // TODO: This should probably be 'NEW'
            window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_NONE, 0, 64);
        }
        break;
    case WIDX_TITLE_EDITOR_DUPLICATE_BUTTON:
        if (!commandEditorOpen && _editingTitleSequence != nullptr)
        {
            window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_sequenceName, 64);
        }
        break;
    case WIDX_TITLE_EDITOR_DELETE_BUTTON:
        if (window_title_editor_check_can_edit())
        {
            title_sequence_manager_delete(_selectedTitleSequence);
            window_title_editor_load_sequence(0);
        }
        break;
    case WIDX_TITLE_EDITOR_RENAME_BUTTON:
        if (window_title_editor_check_can_edit() && _editingTitleSequence != nullptr)
        {
            window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_sequenceName, 64);
        }
        break;

    //////////////////////////////////////////////////////////////////////////////////////////////////////
    // Editor tab
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    case WIDX_TITLE_EDITOR_ADD_SAVE:
        if (!_isSequenceReadOnly && !title_is_previewing_sequence() && !commandEditorOpen)
        {
            auto intent = Intent(WC_LOADSAVE);
            intent.putExtra(INTENT_EXTRA_LOADSAVE_TYPE, LOADSAVETYPE_LOAD | LOADSAVETYPE_GAME);
            intent.putExtra(INTENT_EXTRA_CALLBACK, (void *) window_title_editor_add_park_callback);
            context_open_intent(&intent);
        }
        break;
    case WIDX_TITLE_EDITOR_REMOVE_SAVE:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1)
            {
                TitleSequenceRemovePark(_editingTitleSequence, w->selected_list_item);
                if (w->selected_list_item >= (sint16)_editingTitleSequence->NumSaves)
                {
                    w->selected_list_item--;
                }
            }
        }
        break;
    case WIDX_TITLE_EDITOR_RENAME_SAVE:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1)
            {
                window_text_input_open(w, widgetIndex, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SAVE, STR_STRING, (uintptr_t)_editingTitleSequence->Saves[w->selected_list_item], 52 - 1);
            }
        }
        break;
    case WIDX_TITLE_EDITOR_LOAD_SAVE:
        if (w->selected_list_item >= 0 && w->selected_list_item < (sint16)_editingTitleSequence->NumSaves)
        {
            auto handle = TitleSequenceGetParkHandle(_editingTitleSequence, w->selected_list_item);
            auto stream = (IStream *)handle->Stream;
            auto hintPath = String::ToStd(handle->HintPath);

            bool isScenario = ParkImporter::ExtensionIsScenario(hintPath);
            auto objectMgr = OpenRCT2::GetContext()->GetObjectManager();
            auto parkImporter = std::unique_ptr<IParkImporter>(ParkImporter::Create(hintPath));
            auto result = parkImporter->LoadFromStream(stream, isScenario);
            objectMgr->LoadObjects(result.RequiredObjects.data(), result.RequiredObjects.size());
            parkImporter->Import();

            if (isScenario)
                scenario_begin();
            else
                game_load_init();

            TitleSequenceCloseParkHandle(handle);
            window_title_editor_open(WINDOW_TITLE_EDITOR_TAB_SAVES);
        }
        break;

    //////////////////////////////////////////////////////////////////////////////////////////////////////
    // Commands tab
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    case WIDX_TITLE_EDITOR_INSERT:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1)
                window_title_command_editor_open(_editingTitleSequence, w->selected_list_item + 1, true);
            else
                window_title_command_editor_open(_editingTitleSequence, (sint32)_editingTitleSequence->NumCommands, true);
        }
        break;
    case WIDX_TITLE_EDITOR_EDIT:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_editingTitleSequence->NumCommands)
            {
                window_title_command_editor_open(_editingTitleSequence, w->selected_list_item, false);
            }
        }
        break;
    case WIDX_TITLE_EDITOR_DELETE:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_editingTitleSequence->NumCommands)
            {
                for (sint32 i = w->selected_list_item; i < (sint16)_editingTitleSequence->NumCommands - 1; i++)
                {
                    _editingTitleSequence->Commands[i] = _editingTitleSequence->Commands[i + 1];
                }
                _editingTitleSequence->NumCommands--;
                if (w->selected_list_item >= (sint16)_editingTitleSequence->NumCommands)
                {
                    w->selected_list_item--;
                }
                TitleSequenceSave(_editingTitleSequence);
            }
        }
        break;
    case WIDX_TITLE_EDITOR_SKIP_TO:
    {
        sint32 position = w->selected_list_item;
        if (title_is_previewing_sequence() && position != -1 && position < (sint32)_editingTitleSequence->NumCommands)
        {
            ITitleSequencePlayer * player = window_title_editor_get_player();
            title_sequence_player_seek(player, position);
            title_sequence_player_update(player);
        }
        break;
    }
    case WIDX_TITLE_EDITOR_MOVE_DOWN:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_editingTitleSequence->NumCommands - 1)
            {
                TitleCommand * a = &_editingTitleSequence->Commands[w->selected_list_item];
                TitleCommand * b = &_editingTitleSequence->Commands[w->selected_list_item + 1];
                TitleCommand tmp = *a;
                *a = *b;
                *b = tmp;
                w->selected_list_item++;
                TitleSequenceSave(_editingTitleSequence);
            }
        }
        break;
    case WIDX_TITLE_EDITOR_MOVE_UP:
        if (window_title_editor_check_can_edit())
        {
            if (w->selected_list_item > 0 && w->selected_list_item < (sint16)_editingTitleSequence->NumCommands)
            {
                TitleCommand * a = &_editingTitleSequence->Commands[w->selected_list_item - 1];
                TitleCommand * b = &_editingTitleSequence->Commands[w->selected_list_item];
                TitleCommand tmp = *b;
                *b = *a;
                *a = tmp;
                w->selected_list_item--;
                TitleSequenceSave(_editingTitleSequence);
            }
        }
        break;
    case WIDX_TITLE_EDITOR_REPLAY:
        if (title_is_previewing_sequence())
        {
            ITitleSequencePlayer * player = window_title_editor_get_player();
            title_sequence_player_reset(player);
            title_sequence_player_update(player);
        }
        break;
    case WIDX_TITLE_EDITOR_STOP:
        if (title_is_previewing_sequence())
        {
            title_stop_previewing_sequence();
        }
        break;
    case WIDX_TITLE_EDITOR_PLAY:
        if (!title_is_previewing_sequence() || _selectedTitleSequence != title_get_current_sequence())
        {
            if (!title_preview_sequence(_selectedTitleSequence))
            {
                context_show_error(STR_ERR_FAILED_TO_LOAD_TITLE_SEQUENCE, STR_NONE);
            }
            else if (!(gScreenFlags & SCREEN_FLAGS_TITLE_DEMO))
            {
                gPreviewingTitleSequenceInGame = true;
            }
        }
        break;
    case WIDX_TITLE_EDITOR_SKIP:
        if (title_is_previewing_sequence())
        {
            ITitleSequencePlayer * player = window_title_editor_get_player();
            sint32 position = title_sequence_player_get_current_position(player) + 1;
            if (position >= (sint32)_editingTitleSequence->NumCommands)
            {
                position = 0;
            }
            title_sequence_player_seek(player, position);
            title_sequence_player_update(player);
        }
        break;
    }
}
コード例 #16
0
ファイル: Insert Object Dlg.cpp プロジェクト: aolko/construct
BOOL InsertObjectDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();

	// Add resizing
	BOOL First = dlgMan.Load(m_hWnd, "Software\\Construct\\InsertObjectDialog099");
	if (!First)
	{
		first_run.Attach(this);
		first_run.SetHighlightOnMouseOver();
		first_run.SetResize();
		first_run.SetText(_T(IO_FIRSTRUN));
	}

    dlgAnchor.Init(m_hWnd);

	dlgAnchor.Add(IDOK, ANCHOR_RIGHT | ANCHOR_TOP);
	dlgAnchor.Add(IDCANCEL, ANCHOR_RIGHT | ANCHOR_TOP);
	dlgAnchor.Add(IDC_LISTOBJECTS, ANCHOR_RIGHT | ANCHOR_TOP);
	dlgAnchor.Add(IDC_GETMORE, ANCHOR_RIGHT | ANCHOR_TOP);
	dlgAnchor.Add(IDC_FILTER, ANCHOR_RIGHT | ANCHOR_BOTTOM);
	dlgAnchor.Add(IDTOPTEXT, ANCHOR_LEFT | ANCHOR_RIGHT | ANCHOR_TOP);

	dlgAnchor.Add(IDC_NAME, ANCHOR_LEFT | ANCHOR_TOP | ANCHOR_RIGHT);
	dlgAnchor.Add(IDC_FOLDER, ANCHOR_TOP | ANCHOR_RIGHT | ANCHOR_BOTTOM);

	dlgAnchor.Add(IDC_OBJECTS, ANCHOR_TOPLEFT | ANCHOR_BOTTOMRIGHT);
	dlgAnchor.Add(IDC_INFO, ANCHOR_LEFT | ANCHOR_RIGHT | ANCHOR_BOTTOM);
	dlgAnchor.Add(IDC_TOOLBOX, ANCHOR_RIGHT | ANCHOR_BOTTOM);
	dlgAnchor.Add(10, ANCHOR_LEFT | ANCHOR_BOTTOM | ANCHOR_RIGHT);

	CRect Rect;
	objects.GetWindowRect(&Rect);
	ScreenToClient(&Rect);
	Rect.top = Rect.bottom - 1;
	Rect.bottom = Rect.top + 16;
	
	tabs.Create(this, Rect, 1000, WS_CHILD | WS_VISIBLE, __ETWS_ORIENT_BOTTOM);

	dlgAnchor.Add(tabs, ANCHOR_LEFT | ANCHOR_BOTTOM);
	
	tabs.ItemInsert(OT_ALL, 0, true, 0, 1);
	tabs.ItemInsert(OT_AUDIO, 0, true,0, 2);
	tabs.ItemInsert(OT_CONTROLS, 0, true,0, 3);
	tabs.ItemInsert(OT_DATAFILES, 0, true, 0, 4);
	tabs.ItemInsert(OT_GAME, 0, true, 0, 5);
	tabs.ItemInsert(OT_GRAPHICS, 0, true, 0, 6);
	tabs.ItemInsert(OT_INPUT, 0, true,0, 7);
	tabs.ItemInsert(OT_INTERNET, 0, true, 0, 8);
	tabs.ItemInsert(OT_OTHER, 0, true, 0, 9);
	tabs.ItemInsert(OT_SYSTEM, 0, true, 0, 10);
	tabs.SelectionSet(0);

	// Load objects
	LoadObjects();
	ListView_SetImageList(objects.m_hWnd, m_LargeImages, LVSIL_NORMAL);		
	ListView_SetImageList(objects.m_hWnd, small_images, LVSIL_SMALL);	

	// Name of dialog
	CString dialogTitle;
	dialogTitle.Format("Construct : %s", IO_TITLE);
	SetWindowText(dialogTitle);

	// Set texts
	cancel.SetWindowText(CANCEL);
	ok.SetWindowText(INSERT);
	ok.EnableWindow(FALSE);
	exchange.SetWindowText(IO_EXCHANGE);
	info.SetWindowText(IO_CLICKFORINFO);
	list_objects.SetWindowText(IO_LIST_OBJECTS);
	filter.SetWindowText(IO_SEARCH);

	OnChangeCategory();

	if (g_MainFrame->m_INI.GetInt("InsertObject", "List", 0) == 1)
	{
		list_objects.SetCheck(BST_CHECKED);
		OnChangeObjectView();
	}

	objects.SetScrollPos(SB_VERT, 0);
	objects.SetScrollPos(1, 0);
	objects.Invalidate();

	// fill object folders
	vector<CApplication::ObjectFolder>::iterator folder = application.object_folders.begin();

	for ( ; folder != application.object_folders.end(); folder++)
		folders.AddString(folder->name);

	// select default
	folders.SetCurSel(0);

	// Refresh
	SetTimer(10, 200, NULL);

	return TRUE; 
}
コード例 #17
0
//Función para cargar los recursos necesarios para el juego.
bool cGame::LoadResources( void )
{

	bool lbResult;

	lbResult = LoadWindowProperties();

	if ( lbResult )
	{
		//Se inicializa la clase que encapsula las operaciones de OpenGL:
		lbResult = cGraphicManager::Get().Init( &cWindow::Get() );   

		// Clean Window context
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     
		// Resetea color de fondo
		glClearColor(0.0f, 0.0f, 0.0f, 1.0f);

		if (lbResult)
		{
			//Se inicializa la clase que gestiona la texturas indicando que habrá 1, por ejemplo.
			cTextureManager::Get().Init(60);

			mMad_drive_loading = cTextureManager::Get().LoadResource( "Mad_drive_loading", "Data/Scene/images/hud/mad_drive_loading.png" );
			mMad_drive = cTextureManager::Get().LoadResource( "Mad_drive", "Data/Scene/images/hud/mad_drive.png" );
			mLoading = cTextureManager::Get().LoadResource( "Loading", "Data/Scene/images/hud/loading.png" );

			Load2DCameraProperties();

			cGraphicManager::Get().ActivateCamera( &m2DCamera );

			RenderProgress(0.1f);

			Load3DCameraProperties();

			RenderProgress(0.2f);

			LoadIAProperties();

			LoadManagerProperties();

			RenderProgress(0.3f);

			//Se carga la escena.
			//mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/dragonsmall.DAE" ); 		
			//*mDuck = cSceneManager::Get().LoadResource( "Duck", "./Data/Scene/duck_triangulate.dae" ); 
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_cactus.dae" ); 
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_carretera.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_matorral.dae" ); 
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_palmera.dae" ); 
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_tronco.dae" ); 

			LoadVehicles();

			RenderProgress(0.5f);

			LoadHUD();

			RenderProgress(0.6f);

			LoadEffects();

			RenderProgress(0.7f);

			LoadObstacles();

			RenderProgress(0.85f);

//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2_exterior.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2_arma.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2_rueda.dae" );
//		    mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mad_drive_escombros_ruina.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/combustible.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/especial_invencibilidad.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/especial_superturbo.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/municion.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo1_destruido_arma.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo1_destruido_exterior.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2_destruido_arma.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/enemigo2_destruido_exterior.dae" );
//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/mustang_destruido_exterior.dae" );
			//mScene1 = cSceneManager::Get().LoadResource( "TestLevel1", "./Data/Scene/mustang_destruido_interior.dae" );
			
			// Loads skeleton 
		//	cResourceHandle mustang_mesh = cMeshManager::Get().LoadResource("testlevel1", "./Data/Scene/mustang_destruido_interior.dae");

			/*if (!((cScene *)mScene.GetResource())->Init("TestLevel1", "./Data/Scene/mustang_destruido_interior.dae")){
				OutputDebugStr("Error loading object!");
			}*/

//			mScene = cSceneManager::Get().LoadResource( "TestLevel", "./Data/Scene/plane.DAE" );

			//cPhysicObject mModelObject = *((cPhysicObject*) ((cScene *)mScene.GetResource())->getSubObject( 1 ));


			// Inits skeleton model
			//cSkeletalManager::Get().LoadResource("Skeleton", "./Data/Skeletal/SkeletonModel.xml");
		
			// Loads skeleton 
			//mSkeletalMesh = cMeshManager::Get().LoadResource("Skeleton", "Skeleton", kuiSkeletalMesh);

			// Get skeleton mesh
			//cSkeletalMesh* lpSkeletonMesh=(cSkeletalMesh*)mSkeletalMesh.GetResource();

			// Load Skeleton meshes
			//cResourceHandle lMaterial = cMaterialManager::Get().LoadResource("Skeleton", "./Data/Material/SkeletonMaterial.xml");
		
			//assert(lMaterial.IsValidHandle());
			//mObject.AddMesh(mSkeletalMesh, lMaterial);	
		
			// Bounding box del personaje
			/*mBoxModel.InitBox( 0.0f, cVec3( 0.3f, 1.0f, 0.3f ) );
			mObject.CreatePhysics( &mBoxModel );
			lScaleMatrix.LoadScale(0.01f);
			mObject.SetScaleMatrix( lScaleMatrix );*/

			LoadObjects();

			RenderProgress(1.0f);
			
			LoadWorld();

		} else {
			//Si algo falla se libera la ventana.
			cWindow::Get().Deinit();
		}
	}

   return lbResult;
}