LRESULT nsf_window::onCommand(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case ID_MODEL_VIEW: case ID_GOOL_VIEW: { unsigned long params[2]; params[0] = (unsigned long)&mainList->selectedEntry; params[1] = (unsigned long)mainList->selItemIndex; SendMessageRoot(MSG_SELECT_ITEM, 0, (LPARAM)params); } break; case ID_MODEL_EXPORT_AS_MD3: case ID_MODEL_EXPORT_AS_COLLADA: { char filename[MAX_PATH] = ""; if ((LOWORD(wParam) == ID_MODEL_EXPORT_AS_MD3) && (mainList->selectedEntry.type == 1)) FileOpenBox("MD3 Files (*.md3)\0*.md3\0All Files (*.*)\0*.*\0", filename, true); else if ((LOWORD(wParam) == ID_MODEL_EXPORT_AS_COLLADA) && (mainList->selectedEntry.type == 3)) FileOpenBox("DAE Files (*.dae)\0*.dae\0All Files (*.*)\0*.*\0", filename, true); if (filename[0] != 0) { unsigned long params[2]; params[0] = (unsigned long)&mainList->selectedEntry; params[1] = (unsigned long)&filename; SendMessageRoot(MSG_EXPORT_ITEM, 0, (LPARAM)params); } } break; } return NULL; }
LRESULT model_window::onCreate(UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT rcClient; GetClientRect(&rcClient); param params[2]; params[0] = (param)&mainContext; params[1] = 0; SendMessageRoot(MSG_GET_CONTEXT, (WPARAM)0, (LPARAM)params); addChild(mainContext); mainContext->create(WS_EX_CLIENTEDGE, 0, 0, 640, 480, IDC_RENDER); zone_window *zoneWindow = new zone_window; addChild(zoneWindow); zoneWindow->create(WS_EX_CLIENTEDGE, 640, 0, 640, rcClient.bottom, IDC_ZONEWINDOW); return NULL; }
LRESULT main_window::onCommand(UINT uMsg, WPARAM wParam, LPARAM lParam) { unsigned long params[2] = { 0, 0 }; switch(LOWORD(wParam)) { case ID_FILE_EXIT: ExitProcess(0); break; case ID_FILE_OPEN: { char fileName[MAX_PATH] = ""; FileOpenBox("NSD Files (*.nsd)\0*.nsd\0All Files (*.*)\0*.*\0", fileName, false); params[0] = (unsigned long)fileName; SendMessageRoot(MSG_LOAD_NSD, (WPARAM)0, (LPARAM)params); } break; } switch(LOWORD(wParam)) { case ID_GOOL_STEP: { //SendMessage(objhWnd, WM_ACTIVATE, 0, 0); //resumeGoolSystem(); } break; case ID_VIEW_OCTREE: { if (menu_flags[0] = (!menu_flags[0])) CheckMenuItem(GetMenu(hFrame), ID_VIEW_OCTREE, MF_CHECKED); else CheckMenuItem(GetMenu(hFrame), ID_VIEW_OCTREE, MF_UNCHECKED); SendMessageRoot(CPM_VISUAL_ZONE_TOGGLE_OCTREES, (WPARAM)0, (LPARAM)params); } break; case ID_VIEW_CAMERA_MODELMODE: { menu_flags[4] = true; CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_MODELMODE, MF_CHECKED); if (menu_flags[5] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_FLIGHTMODE, MF_UNCHECKED); if (menu_flags[7] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_CRASHMODE, MF_UNCHECKED); menu_flags[5] = false; menu_flags[6] = false; menu_flags[7] = false; params[0] = 0; SendMessageRoot(CPM_CAMERA_SELECT, (WPARAM)0, (LPARAM)params); } break; case ID_VIEW_CAMERA_FLIGHTMODE: { menu_flags[5] = true; CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_FLIGHTMODE, MF_CHECKED); if (menu_flags[4] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_MODELMODE, MF_UNCHECKED); if (menu_flags[7] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_CRASHMODE, MF_UNCHECKED); menu_flags[4] = false; menu_flags[6] = false; menu_flags[7] = false; params[0] = 1; SendMessageRoot(CPM_CAMERA_SELECT, (WPARAM)0, (LPARAM)params); } break; case ID_VIEW_CAMERA_CRASHMODE: { menu_flags[7] = true; CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_CRASHMODE, MF_CHECKED); if (menu_flags[4] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_MODELMODE, MF_UNCHECKED); if (menu_flags[5] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_FLIGHTMODE, MF_UNCHECKED); menu_flags[4] = false; menu_flags[5] = false; menu_flags[6] = false; params[0] = 2; SendMessageRoot(CPM_CAMERA_SELECT, (WPARAM)0, (LPARAM)params); } break; case ID_VIEW_CAMPTH: { if (menu_flags[1] = (!menu_flags[1])) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMPTH, MF_CHECKED); else CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMPTH, MF_UNCHECKED); SendMessageRoot(CPM_VISUAL_SECTION_TOGGLE, (WPARAM)0, (LPARAM)params); } break; case ID_VIEW_WIREFRAME: { if (menu_flags[2] = (!menu_flags[2])) CheckMenuItem(GetMenu(hFrame), ID_VIEW_WIREFRAME, MF_CHECKED); else CheckMenuItem(GetMenu(hFrame), ID_VIEW_WIREFRAME, MF_UNCHECKED); SendMessageRoot(CPM_VISUAL_WIREFRAME_TOGGLE, (WPARAM)0, (LPARAM)params); } break; case ID_GOOL_CONTROL: { if (menu_flags[3] = (!menu_flags[3])) { CheckMenuItem(GetMenu(hFrame), ID_GOOL_CONTROL, MF_CHECKED); menu_flags[7] = true; CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_CRASHMODE, MF_CHECKED); if (menu_flags[4] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_MODELMODE, MF_UNCHECKED); if (menu_flags[5] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_FLIGHTMODE, MF_UNCHECKED); menu_flags[4] = false; menu_flags[5] = false; menu_flags[6] = false; params[0] = 2; SendMessageRoot(CPM_CAMERA_SELECT, (WPARAM)0, (LPARAM)params); } else { CheckMenuItem(GetMenu(hFrame), ID_GOOL_CONTROL, MF_UNCHECKED); menu_flags[5] = true; CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_FLIGHTMODE, MF_CHECKED); if (menu_flags[4] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_MODELMODE, MF_UNCHECKED); if (menu_flags[7] == true) CheckMenuItem(GetMenu(hFrame), ID_VIEW_CAMERA_CRASHMODE, MF_UNCHECKED); menu_flags[4] = false; menu_flags[6] = false; menu_flags[7] = false; params[0] = 1; SendMessageRoot(CPM_CAMERA_SELECT, (WPARAM)0, (LPARAM)params); } SendMessageRoot(CSM_CONTROL_TOGGLE_ACTIVE, (WPARAM)0, (LPARAM)params); } break; } }
LRESULT nsf_window::onCreate(UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT rcClient; GetClientRect(&rcClient); // get nsd/nsf unsigned long params[2]; params[0] = (unsigned long)&nsf; params[1] = (unsigned long)&nsd; SendMessageRoot(MSG_GET_NSD, (WPARAM)0, (LPARAM)params); mainList = new entryList(IDC_MAINTREE, ENTRYLIST_NSF, nsf, nsd, 0, 0, 200, rcClient.bottom, hSelf); globalList = new entryList(IDC_GLOBALTREE, ENTRYLIST_DEFAULT, nsf, nsd, 484, 0, 118, rcClient.bottom, hSelf); lookupList = new entryList(IDC_LOOKUPTREE, ENTRYLIST_NSD, nsf, nsd, 602, 0, 236, rcClient.bottom, hSelf); //484, 354 hCodeMenu = CreatePopupMenu(); AppendMenu(hCodeMenu, MF_STRING, ID_GOOL_VIEW, "Open in Code View"); hModelMenuA = CreatePopupMenu(); AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_VIEW, "Open in Model/Zone View"); AppendMenu(hModelMenuA, MF_SEPARATOR, ID_SEPARATOR, ""); AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_EXPORT_AS_COLLADA, "Export as COLLADA"); hModelMenuB = CreatePopupMenu(); AppendMenu(hModelMenuB, MF_STRING, ID_MODEL_EXPORT_AS_MD3, "Export as .MD3"); CreateWindowEx(0, WC_STATIC, "", WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME, 210, 10, 250, 110, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Type: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 25, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Entry Count: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 55, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Checksum: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 85, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 25, 100, 22, hSelf, (HMENU)IDC_CHUNKTYPEEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 55, 100, 22, hSelf, (HMENU)IDC_CHUNKENTRYCOUNTEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 85, 100, 22, hSelf, (HMENU)IDC_CHUNKCHECKSUMEDIT, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "", WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME, 210, 130, 250, 110, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Type: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 145, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Item Count: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 175, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "n/a: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 205, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 145, 100, 22, hSelf, (HMENU)IDC_ENTRYTYPEEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 175, 100, 22, hSelf, (HMENU)IDC_ENTRYITEMCOUNTEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 205, 100, 22, hSelf, (HMENU)IDC_UNUSEDEDIT, hInstance, NULL); mainList->occupy(); lookupList->occupy(); for (int lp=0; lp<MAX_LEVELEIDS; lp++) globalList->lookupAddEntry(nsd->levelEIDs[lp]); return NULL; }