Doom 3 engine release and game code
Moderator: InsideQC Admins
Re: Doom 3 engine release and game code
AF editor (ragdolls), Sounds editor, GUI editor, Lights editor and something else (I think Scripts/Def editor) was not re-created by DarkMod folks. DarkRadiant only has particle editor and material highlighter and real-time preview. That's all.
Dhewm3 branch folks were asking if someone can convert mfc stuff into qt, so if you can do it, please do it
That's kinda more important than GLSL port because without proper tools it's sorta pointless to even mess with Doom 3 engine.
Dhewm3 branch folks were asking if someone can convert mfc stuff into qt, so if you can do it, please do it
- motorsep
- Posts: 231
- Joined: Wed Aug 02, 2006 11:46 pm
- Location: Texas, USA
Re: Doom 3 engine release and game code
My macro only does MFC -> wxWidgets im afraid
and even with the conversion you need to do a lot by hand still.
Im no c++ guru which both qt and wxwidgets are built on and frankly im scared to death of even trying
for work you could load up a windows dualboot and do the material work there it should work the same on both linux and windows and while it may seem akward it does have its uses
Loading windows from inside linux is probably a bad idea though since no emulators i know of are yet able to render directly to the gfx card so you would end up trying to run doom3 on something like an S3 virge.
I read up on arb shaders and sadly there is no way besides fugly hacks that will allow accessing the depth buffer (the ability to do stuff like that was added with opengl3 and glsl) so the glsl backend will have to be finished for that part to work. Im currently trying to add the missing bits and pieces and will reply back if and when i get something that works
the macro for msvc is here ->
feel free to use if you like or post it to the relevant people.
Im no c++ guru which both qt and wxwidgets are built on and frankly im scared to death of even trying
for work you could load up a windows dualboot and do the material work there it should work the same on both linux and windows and while it may seem akward it does have its uses
Loading windows from inside linux is probably a bad idea though since no emulators i know of are yet able to render directly to the gfx card so you would end up trying to run doom3 on something like an S3 virge.
I read up on arb shaders and sadly there is no way besides fugly hacks that will allow accessing the depth buffer (the ability to do stuff like that was added with opengl3 and glsl) so the glsl backend will have to be finished for that part to work. Im currently trying to add the missing bits and pieces and will reply back if and when i get something that works
the macro for msvc is here ->
- Code: Select all
Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Public Module wxWidgetModule
Private Sub ReplaceString(ByVal strFind As String, ByVal strReplace As String)
DTE.Find.FindWhat = strFind
DTE.Find.ReplaceWith = strReplace
DTE.Find.Execute()
End Sub
Sub ConvertMFC2wxWidget()
DTE.Find.Target = vsFindTarget.vsFindTargetOpenDocuments
DTE.Find.MatchCase = True
DTE.Find.MatchWholeWord = True
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.KeepModifiedDocumentsOpen = True
DTE.Find.FilesOfType = ""
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
' This conversion is created manually from $(WXWIN)\src\msw\window.cpp and other code
' Data Type
ReplaceString("INT_PTR", "intptr_t")
ReplaceString("UINT_PTR", "uintptr_t")
' Data Class
ReplaceString("CArray", "wxArray")
ReplaceString("CString", "wxString")
ReplaceString("CStringArray", "wxArrayString")
ReplaceString("CUIntArray", "wxArrayUint")
ReplaceString("CWordArray", "wxArray")
ReplaceString("CRect", "wxRect")
ReplaceString("RECT", "wxRect")
ReplaceString("LPRECT", "wxRect*")
ReplaceString("CSize", "wxSize")
ReplaceString("SIZE", "wxSize")
ReplaceString("LPSIZE", "wxSize*")
ReplaceString("CPoint", "wxPoint")
ReplaceString("wxPoint", "wxPoint")
ReplaceString("LPPOINT", "wxPoint*")
ReplaceString("CList", "wxList")
ReplaceString("CMap", "wxHastMap")
ReplaceString("CMapPtrToPtr", "wxHastMap")
ReplaceString("CMapPtrToWord", "wxHastMap")
ReplaceString("CTime", "wxDateTime")
' Object/Event Class
ReplaceString("CObject", "wxObject")
ReplaceString("CCmdTarget", "wxEvtHandler")
' Threading
ReplaceString("CMutex", "wxMutex")
ReplaceString("CCriticalSection", "wxCriticalSection")
ReplaceString("CEvent", "wxCondition")
ReplaceString("CSemaphore", "wxSemaphore")
ReplaceString("CWinThread", "wxThread")
ReplaceString("HMODULE", "wxDllType")
ReplaceString("HINSTANCE", "wxDllType")
' D&D
ReplaceString("DROPEFFECT", "wxDragResult")
ReplaceString("COleDropSource", "wxDropSource")
ReplaceString("COleDropTarget", "wxDropTarget")
ReplaceString("COleDataObject", "wxDataObject")
ReplaceString("OnDragEnter", "OnEnter")
ReplaceString("OnDragLeave", "OnLeave")
' GDI Class
ReplaceString("COLORREF", "wxColor")
ReplaceString("CBitmap", "wxBitmap")
ReplaceString("CDC", "wxDC")
ReplaceString("CClientDC", "wxClientDC")
ReplaceString("CPaintDC", "wxPaintDC")
ReplaceString("CWindowDC", "wxWindowDC")
ReplaceString("CMetaFileDC", "wxMetaFileDC")
ReplaceString("CFont", "wxFont")
ReplaceString("CPen", "wxPen")
ReplaceString("CBrush", "wxBrush")
ReplaceString("CImageList", "wxImageList")
ReplaceString("CMenu", "wxMenu")
ReplaceString("HCURSOR", "wxCursor")
ReplaceString("HICON", "wxIcon")
ReplaceString("CMenuItemInfo", "wxMenuItem")
' Window Class
ReplaceString("HWND", "WXHWND")
ReplaceString("CWnd", "wxWindow")
ReplaceString("CAnimateCtrl", "wxMediaCtrl")
ReplaceString("CButton", "wxButton")
ReplaceString("CBitmapButton", "wxBitmapButton")
ReplaceString("CCheckListBox", "wxCheckListBox")
ReplaceString("CComboBox", "wxComboBox")
ReplaceString("CDateTimeCtrl", "wxCalendarCtrl")
ReplaceString("CEdit", "wxTextCtrl")
ReplaceString("CEditView", "wxTextCtrl")
ReplaceString("CListBox", "wxListBox")
ReplaceString("CProgressCtrl", "wxGauge")
ReplaceString("CPropertySheet", "wxNotebook")
ReplaceString("CRichEditCtrl", "wxRichTextCtrl")
ReplaceString("CScrollBar", "wxScrollBar")
ReplaceString("CStatusBar", "wxStatusBar")
ReplaceString("CToolBar", "wxToolBar")
ReplaceString("CTreeCtrl", "wxTreeCtrl")
ReplaceString("CWaitCursor", "wxBusyCursor")
' Dialog
ReplaceString("CDialog", "wxDialog")
ReplaceString("DoModal", "ShowModal")
ReplaceString("CCommonDialog", "wxDialog")
ReplaceString("CCommonDialog", "wxDialog")
' UpdateData(FALSE) => Validate() && TransferDataToWindow()
' UpdateData(TRUE) => Validate() && TransferDataFromWindow()
' ReplaceString("DoDataExchange", "TransferDataFromWindow()")
' Document View
ReplaceString("CDocument", "wxDocument")
ReplaceString("CWinApp", "wxApp")
ReplaceString("CCommandLineInfo", "wxCmdLineParser")
ReplaceString("CFrameWnd", "wxFrame")
ReplaceString("CView", "wxView")
ReplaceString("CMultiDocTemplate", "wxDocTemplate")
ReplaceString("CRecentFileList", "wxFileHistory")
' Database
ReplaceString("CDatabase", "wxDb")
' File
ReplaceString("CFile", "wxFile")
ReplaceString("CFileStatus", "wxFSFile")
' Message Map
ReplaceString("DECLARE_MESSAGE_MAP", "DECLARE_EVENT_TABLE")
ReplaceString("BEGIN_MESSAGE_MAP", "BEGIN_EVENT_TABLE")
ReplaceString("END_MESSAGE_MAP", "END_EVENT_TABLE")
ReplaceString("ON_WM_ACTIVATE()", "EVT_ACTIVATE(OnActivate)")
ReplaceString("ON_WM_ACTIVATEAPP()", "EVT_ACTIVATE_APP(OnActivateApp)")
ReplaceString("ON_WM_CAPTURECHANGED()", "EVT_MOUSE_CAPTURE_CHANGED(OnCaptureChanged)")
ReplaceString("ON_WM_CLOSE()", "EVT_CLOSE(OnClose)")
ReplaceString("ON_WM_CONTEXTMENU()", "EVT_CONTEXT_MENU(OnContextMenu)")
ReplaceString("ON_WM_CREATE()", "EVT_WINDOW_CREATE(OnCreate)")
ReplaceString("ON_WM_DESTROY()", "EVT_WINDOW_DESTROY(OnDestroy)")
ReplaceString("ON_WM_DROPFILES()", "EVT_DROP_FILES(OnDropFiles)")
ReplaceString("ON_WM_ENDSESSION()", "EVT_END_SESSION(OnEndSession)")
ReplaceString("ON_WM_ERASEBKGND()", "EVT_ERASE_BACKGROUND(OnEraseBkgnd)")
'WM_GETMINMAXINFO : call SetMinSize or SetMaxSize
ReplaceString("ON_WM_INITDIALOG()", "EVT_INIT_DIALOG(OnInitDialog)")
ReplaceString("ON_WM_INITMENU()", "EVT_MENU_OPEN(OnInitMenu)")
ReplaceString("ON_WM_INITMENUPOPUP()", "EVT_MENU_OPEN(OnInitMenuPopup)")
ReplaceString("ON_WM_KEYDOWN()", "EVT_KEY_DOWN(OnKeyDown)")
ReplaceString("ON_WM_KEYUP()", "EVT_KEY_UP(OnKeyUp)")
ReplaceString("ON_WM_KILLFOCUS()", "EVT_KILL_FOCUS(OnKillFocus)")
ReplaceString("ON_WM_LBUTTONDBLCLK()", "EVT_LEFT_DCLICK(OnLButtonDblClk)")
ReplaceString("ON_WM_LBUTTONDOWN()", "EVT_LEFT_DOWN(OnLButtonDown)")
ReplaceString("ON_WM_LBUTTONUP()", "EVT_LEFT_UP(OnLButtonUp)")
ReplaceString("ON_WM_MBUTTONDBLCLK()", "EVT_MIDDLE_DCLICK(OnMButtonDblClk)")
ReplaceString("ON_WM_MBUTTONDOWN()", "EVT_MIDDLE_DOWN(OnMButtonDown)")
ReplaceString("ON_WM_MBUTTONUP()", "EVT_MIDDLE_UP(OnMButtonUp)")
ReplaceString("ON_WM_MENUSELECT()", "EVT_MENU_HIGHLIGHT(OnMenuSelect)")
ReplaceString("ON_WM_MOUSEWHEEL()", "EVT_MOUSEWHEEL(OnMouseWheel)")
ReplaceString("ON_WM_MOUSEMOVE()", "EVT_MOTION(OnMouseMove)")
ReplaceString("ON_WM_MOVE()", "EVT_MOVE(OnMove)")
ReplaceString("ON_WM_MOVING()", "EVT_MOVING(OnMoving)")
ReplaceString("ON_WM_PAINT()", "EVT_PAINT(OnPaint)")
ReplaceString("ON_WM_PALETTECHANGED()", "EVT_PALETTE_CHANGED(OnPaletteChanged)")
ReplaceString("ON_WM_QUERYENDSESSION()", "EVT_QUERY_END_SESSION(OnQueryEndSession)")
ReplaceString("ON_WM_QUERYNEWPALETTE()", "EVT_QUERY_NEW_PALETTE(OnQueryNewPalette)")
ReplaceString("ON_WM_RBUTTONDBLCLK()", "EVT_RIGHT_DCLICK(OnRButtonDblClk)")
ReplaceString("ON_WM_RBUTTONDOWN()", "EVT_RIGHT_DOWN(OnRButtonDown)")
ReplaceString("ON_WM_RBUTTONUP()", "EVT_RIGHT_UP(OnRButtonUp)")
ReplaceString("ON_WM_SETCURSOR()", "EVT_SET_CURSOR(OnSetCursor)")
ReplaceString("ON_WM_SETFOCUS()", "EVT_SET_FOCUS(OnSetFocus)")
'ReplaceString("ON_WM_SETTINGCHANGE()", "EVT_DISPLAY_CHANGED(OnSettingChange)")
ReplaceString("ON_WM_SHOWWINDOW()", "EVT_SHOW(OnShowWindow)")
ReplaceString("ON_WM_SIZE()", "EVT_SIZE(OnSize)")
ReplaceString("ON_WM_SIZING()", "EVT_SIZING(OnSizing)")
ReplaceString("ON_WM_SYSCOLORCHANGE()", "EVT_SYS_COLOUR_CHANGED(OnSysColorChange)")
ReplaceString("ON_WM_MESSAGE(WM_DISPLAYCHANGE,", "EVT_DISPLAY_CHANGED(")
'ReplaceString("ON_WM_MESSAGE(WM_POWERBROADCAST,", "EVT_POWER_SUSPENDING(") : EVT_POWER_XXX
' WM_GETDLGCODE => HasFlag, GetWindowStyleFlag/SetWindowStyleFlag, GetWindowStyle/SetWindowStyle
' WM_SETREDRAW => IsFrozen(), Freeze(), Thaw()
' WM_HSCROLL, WM_VSCROLL => EVT_SCROLLWIN(OnScroll)
ReplaceString("ON_BN_CLICKED", "EVT_BUTTON")
' Serialization
ReplaceString("IMPLEMENT_SERIAL_CLASS", "IMPLEMENT_SERIAL_CLASS")
ReplaceString("DECLARE_SERIAL_CLASS", "DECLARE_SERIAL_CLASS")
ReplaceString("IMPLEMENT_SERIAL", "IMPLEMENT_SERIAL_CLASS")
ReplaceString("DECLARE_DYNCREATE", "DECLARE_DYNAMIC_CLASS")
ReplaceString("IMPLEMENT_DYNCREATE", "IMPLEMENT_DYNAMIC_CLASS")
' Function
ReplaceString("AfxMessageBox", "wxMessageBox")
ReplaceString("AfxGetApp", "wxGetApp")
ReplaceString("GetSysColor", "wxSystemSettings::GetColour")
' wxString
ReplaceString("GetBufferSetLength", "GetWriteBuf")
ReplaceString("ReleaseBuffer", "UngetWriteBuf")
' wxRect : global namespace to class namespace
ReplaceString("IntersectRect", "Intersect") ' IntersectRect(&A, &B, &C) => A = B.Intersect(C);
ReplaceString("OffsetRect", "Offset") ' OffsetRect(&A, &B) => A.Offset(B);
ReplaceString("PtInRect", "Contains") ' PtInRect(&A, &B) => A.Contains(B);
ReplaceString("UnionRect", "Union") ' UnionRect(&A, &B, &C) => A = B.Union(C);
' ReplaceString("Size", "GetSize");
' ReplaceString("Height", "GetHeight");
' ReplaceString("Width", "GetWidth");
' ReplaceString("left", "x");
' ReplaceString("top", "y");
' wxString
' ReplaceString("InsertAt", "Insert") ' InsertAt(index, V) => Insert(V, index)
' ReplaceString("RemoveAll", "Clear")
' wxDC
ReplaceString("GetCurrentFont", "GetFont")
ReplaceString("SetDeviceOrigin", "SetDeviceOrigin")
ReplaceString("SetLogicalOrigin", "SetLogicalOrigin")
ReplaceString("GetBkColor", "GetTextBackground")
ReplaceString("GetTextColor", "GetTextForeground")
ReplaceString("SetBkColor", "SetTextBackground")
ReplaceString("SetTextColor", "SetTextForeground")
' RectVisible => rect = GetClippingBox, rect.Intersects
ReplaceString("IntersectClipRect", "SetClippingRegion")
ReplaceString("GetBkMode", "GetBackgroundMode")
ReplaceString("SetBkMode", "SetBackgroundMode")
ReplaceString("ExtTextOut", "DrawLabel")
ReplaceString("FW_BOLD", "wxFONTWEIGHT_BOLD")
ReplaceString("FW_REGULAR", "wxFONTWEIGHT_NORMAL")
ReplaceString("ILD_SELECTED", "wxIMAGELIST_DRAW_SELECTED")
ReplaceString("ILD_TRANSPARENT", "wxIMAGELIST_DRAW_TRANSPARENT")
' wxApp
ReplaceString("InitInstance", "OnInit")
ReplaceString("ExitInstance", "OnExit")
' wxWindow
ReplaceString("BringWindowToTop", "Raise")
ReplaceString("GetFocus", "FindFocus")
ReplaceString("EnableWindow", "Enable")
ReplaceString("IsWindowEnabled", "IsEnabled")
ReplaceString("GetClipBox", "GetClippingBox")
ReplaceString("GetDlgItem", "FindWindow")
ReplaceString("SetCapture", "CaptureMouse")
ReplaceString("ReleaseCapture", "ReleaseMouse")
ReplaceString("Invalidate", "Refresh")
ReplaceString("InvalidateRect", "RefreshRect")
ReplaceString("GetWindowText", "GetLabel")
ReplaceString("SetWindowText", "SetLabel")
ReplaceString("UpdateWindow", "Update")
ReplaceString("SetRedraw(FALSE)", "Freeze()")
ReplaceString("SetRedraw(TRUE)", "Thaw()")
ReplaceString("ShowWindow", "Show")
' WS_EX_LAYOUTRTL => WS_EX_LAYOUTRTL,
' GetStyle => MSWGetStyle
ReplaceString("WS_HSCROLL", "wxSB_HORIZONTAL")
ReplaceString("WS_VSCROLL", "wxSB_VERTICAL")
' wxListBox
ReplaceString("GetLBText", "GetString") ' GetLBText(i, s) => s = GetString(i)
' wxRichTextCtrl
ReplaceString("CHARFORMAT2", "wxTextAttrEx")
' ReplaceString("GetTextLength", "GetLastPosition")
' MACRO
ReplaceString("ASSERT", "wxASSERT")
' Definition
ReplaceString("IDOK", "wxID_OK")
ReplaceString("IDCANCEL", "wxID_CANCEL")
ReplaceString("IDYES", "wxID_YES")
ReplaceString("IDNO", "wxID_NO")
ReplaceString("MB_YESNO", "wxYES_NO")
ReplaceString("MB_OK", "wxOK")
ReplaceString("MB_CANCEL", "wxCANCEL")
ReplaceString("MB_CENTRE", "wxCENTRE")
ReplaceString("MB_ICONEXCLAMATION", "wxICON_EXCLAMATION")
ReplaceString("MB_ICONHAND", "wxICON_HAND")
ReplaceString("MB_ICONERROR", "wxICON_ERROR")
ReplaceString("MB_ICONQUESTION", "wxICON_QUESTION")
ReplaceString("MB_ICONINFORMATION", "wxICON_INFORMATION")
' Pen Definition
ReplaceString("PS_SOLID", "wxSOLID")
ReplaceString("PS_DASH", "wxSHORT_DASH")
ReplaceString("PS_DOT", "wxDOT")
ReplaceString("PS_DASHDOT", "wxSHORT_DASH")
ReplaceString("PS_DASHDOTDOT", "wxSHORT_DASH")
ReplaceString("PS_NULL", "wxTRANSPARENT")
ReplaceString("PS_USERSTYLE", "wxUSER_DASH")
' Brush Definition
ReplaceString("BS_SOLID", "wxSOLID")
ReplaceString("BS_NULL", "wxTRANSPARENT")
ReplaceString("BS_DIBPATTERN", "wxSTIPPLE")
ReplaceString("HS_BDIAGONAL", "wxBDIAGONAL_HATCH")
ReplaceString("HS_DIAGCROSS", "wxCROSSDIAG_HATCH")
ReplaceString("HS_FDIAGONAL", "wxFDIAGONAL_HATCH")
ReplaceString("HS_CROSS", "wxCROSS_HATCH")
ReplaceString("HS_HORIZONTAL", "wxHORIZONTAL_HATCH")
ReplaceString("HS_VERTICAL", "wxVERTICAL_HATCH")
' GetSysColor Definition
ReplaceString("COLOR_3DDKSHADOW", "wxSYS_COLOUR_3DDKSHADOW")
ReplaceString("COLOR_3DFACE", "wxSYS_COLOUR_3DFACE")
ReplaceString("COLOR_3DHIGHLIGHT", "wxSYS_COLOUR_3DHIGHLIGHT")
ReplaceString("COLOR_3DHILIGHT", "wxSYS_COLOUR_3DHILIGHT")
ReplaceString("COLOR_3DLIGHT", "wxSYS_COLOUR_3DLIGHT")
ReplaceString("COLOR_3DDKSHADOW", "wxSYS_COLOUR_3DDKSHADOW")
ReplaceString("COLOR_3DSHADOW", "wxSYS_COLOUR_3DSHADOW")
ReplaceString("COLOR_ACTIVEBORDER", "wxSYS_COLOUR_ACTIVEBORDER")
ReplaceString("COLOR_ACTIVECAPTION", "wxSYS_COLOUR_ACTIVECAPTION")
ReplaceString("COLOR_APPWORKSPACE", "wxSYS_COLOUR_APPWORKSPACE")
ReplaceString("COLOR_BACKGROUND", "wxSYS_COLOUR_BACKGROUND")
ReplaceString("COLOR_BTNFACE", "wxSYS_COLOUR_BTNFACE")
ReplaceString("COLOR_BTNHIGHLIGHT", "wxSYS_COLOUR_BTNHIGHLIGHT")
ReplaceString("COLOR_BTNHILIGHT", "wxSYS_COLOUR_BTNHILIGHT")
ReplaceString("COLOR_BTNSHADOW", "wxSYS_COLOUR_BTNSHADOW")
ReplaceString("COLOR_BTNTEXT", "wxSYS_COLOUR_BTNTEXT")
ReplaceString("COLOR_CAPTIONTEXT", "wxSYS_COLOUR_CAPTIONTEXT")
ReplaceString("COLOR_DESKTOP", "wxSYS_COLOUR_DESKTOP")
ReplaceString("COLOR_GRAYTEXT", "wxSYS_COLOUR_GRAYTEXT")
ReplaceString("COLOR_HIGHLIGHT", "wxSYS_COLOUR_HIGHLIGHT")
ReplaceString("COLOR_HIGHLIGHTTEXT", "wxSYS_COLOUR_HIGHLIGHTTEXT")
ReplaceString("COLOR_INACTIVEBORDER", "wxSYS_COLOUR_INACTIVEBORDER")
ReplaceString("COLOR_INACTIVECAPTION", "wxSYS_COLOUR_INACTIVECAPTION")
ReplaceString("COLOR_INACTIVECAPTIONTEXT", "wxSYS_COLOUR_INACTIVECAPTIONTEXT")
ReplaceString("COLOR_INFOBK", "wxSYS_COLOUR_INFOBK")
ReplaceString("COLOR_INFOTEXT", "wxSYS_COLOUR_INFOTEXT")
ReplaceString("COLOR_MENU", "wxSYS_COLOUR_MENU")
ReplaceString("COLOR_MENUHILIGHT", "wxSYS_COLOUR_MENUHILIGHT")
ReplaceString("COLOR_MENUBAR", "wxSYS_COLOUR_MENUBAR")
ReplaceString("COLOR_MENUTEXT", "wxSYS_COLOUR_MENUTEXT")
ReplaceString("COLOR_SCROLLBAR", "wxSYS_COLOUR_SCROLLBAR")
ReplaceString("COLOR_WINDOW", "wxSYS_COLOUR_WINDOW")
ReplaceString("COLOR_WINDOWFRAME", "wxSYS_COLOUR_WINDOWFRAME")
ReplaceString("COLOR_WINDOWTEXT", "wxSYS_COLOUR_WINDOWTEXT")
' Icon
' AfxGetApp()->LoadIcon(IDR) => wxIcon.LoadFile(MAKEINTRESOURCE(IDR), wxBITMAP_TYPE_ICO_RESOURCE)
' ScrollBar Definition
ReplaceString("SB_TOP", "wxEVT_SCROLLWIN_TOP")
ReplaceString("SB_BOTTOM", "wxEVT_SCROLLWIN_BOTTOM")
ReplaceString("SB_LINEUP", "wxEVT_SCROLLWIN_LINEUP")
ReplaceString("SB_LINEDOWN", "wxEVT_SCROLLWIN_LINEDOWN")
ReplaceString("SB_PAGEUP", "wxEVT_SCROLLWIN_PAGEUP")
ReplaceString("SB_PAGEDOWN", "wxEVT_SCROLLWIN_PAGEDOWN")
ReplaceString("SB_THUMBPOSITION", "wxEVT_SCROLLWIN_THUMBRELEASE")
ReplaceString("SB_THUMBTRACK", "wxEVT_SCROLLWIN_THUMBTRACK")
' DrawText Definition
ReplaceString("DT_TOP", "wxALIGN_TOP")
ReplaceString("DT_VCENTER", "wxALIGN_CENTER_VERTICAL")
ReplaceString("DT_BOTTOM", "wxALIGN_BOTTOM")
ReplaceString("DT_LEFT", "wxALIGN_LEFT")
ReplaceString("DT_CENTER", "wxALIGN_CENTER_HORIZONTAL")
ReplaceString("DT_RIGHT", "wxALIGN_RIGHT")
' Power Definition
ReplaceString("PBT_APMQUERYSUSPEND", "wxEVT_POWER_SUSPENDING")
ReplaceString("PBT_APMQUERYSUSPENDFAILED", "wxEVT_POWER_SUSPEND_CANCEL")
ReplaceString("PBT_APMSUSPEND", "wxEVT_POWER_SUSPENDED")
ReplaceString("PBT_APMRESUMESUSPEND", "wxEVT_POWER_RESUME")
ReplaceString("PBT_APMRESUMEAUTOMATIC", "wxEVT_POWER_RESUME")
' Key codes
ReplaceString("VK_BACK", "WXK_BACK")
ReplaceString("VK_TAB", "WXK_TAB")
ReplaceString("VK_RETURN", "WXK_RETURN")
ReplaceString("VK_ESCAPE", "WXK_ESCAPE")
ReplaceString("VK_SPACE", "WXK_SPACE")
ReplaceString("VK_DELETE", "WXK_DELETE")
ReplaceString("VK_START", "WXK_START")
ReplaceString("VK_LBUTTON", "WXK_LBUTTON")
ReplaceString("VK_RBUTTON", "WXK_RBUTTON")
ReplaceString("VK_CANCEL", "WXK_CANCEL")
ReplaceString("VK_MBUTTON", "WXK_MBUTTON")
ReplaceString("VK_CLEAR", "WXK_CLEAR")
ReplaceString("VK_SHIFT", "WXK_SHIFT")
ReplaceString("VK_ALT", "WXK_ALT")
ReplaceString("VK_CONTROL", "WXK_CONTROL")
ReplaceString("VK_MENU", "WXK_MENU")
ReplaceString("VK_PAUSE", "WXK_PAUSE")
ReplaceString("VK_CAPSLOCK", "WXK_CAPITAL")
ReplaceString("VK_END", "WXK_END")
ReplaceString("VK_HOME", "WXK_HOME")
ReplaceString("VK_LEFT", "WXK_LEFT")
ReplaceString("VK_UP", "WXK_UP")
ReplaceString("VK_RIGHT", "WXK_RIGHT")
ReplaceString("VK_DOWN", "WXK_DOWN")
ReplaceString("VK_SELECT", "WXK_SELECT")
ReplaceString("VK_PRINT", "WXK_PRINT")
ReplaceString("VK_EXECUTE", "WXK_EXECUTE")
ReplaceString("VK_PRTSCR", "WXK_SNAPSHOT")
ReplaceString("VK_INSERT", "WXK_INSERT")
ReplaceString("VK_HELP", "WXK_HELP")
ReplaceString("VK_NUMPAD0", "WXK_NUMPAD0")
ReplaceString("VK_NUMPAD1", "WXK_NUMPAD1")
ReplaceString("VK_NUMPAD2", "WXK_NUMPAD2")
ReplaceString("VK_NUMPAD3", "WXK_NUMPAD3")
ReplaceString("VK_NUMPAD4", "WXK_NUMPAD4")
ReplaceString("VK_NUMPAD5", "WXK_NUMPAD5")
ReplaceString("VK_NUMPAD6", "WXK_NUMPAD6")
ReplaceString("VK_NUMPAD7", "WXK_NUMPAD7")
ReplaceString("VK_NUMPAD8", "WXK_NUMPAD8")
ReplaceString("VK_NUMPAD9", "WXK_NUMPAD9")
ReplaceString("VK_MULTIPLY", "WXK_MULTIPLY")
ReplaceString("VK_ADD", "WXK_ADD")
ReplaceString("VK_SEPARATOR", "WXK_SEPARATOR")
ReplaceString("VK_SUBTRACT", "WXK_SUBTRACT")
ReplaceString("VK_DECIMAL", "WXK_DECIMAL")
ReplaceString("VK_DIVIDE", "WXK_DIVIDE")
ReplaceString("VK_F1", "WXK_F1")
ReplaceString("VK_F2", "WXK_F2")
ReplaceString("VK_F3", "WXK_F3")
ReplaceString("VK_F4", "WXK_F4")
ReplaceString("VK_F5", "WXK_F5")
ReplaceString("VK_F6", "WXK_F6")
ReplaceString("VK_F7", "WXK_F7")
ReplaceString("VK_F8", "WXK_F8")
ReplaceString("VK_F9", "WXK_F9")
ReplaceString("VK_F10", "WXK_F10")
ReplaceString("VK_F11", "WXK_F11")
ReplaceString("VK_F12", "WXK_F12")
ReplaceString("VK_F13", "WXK_F13")
ReplaceString("VK_F14", "WXK_F14")
ReplaceString("VK_F15", "WXK_F15")
ReplaceString("VK_F16", "WXK_F16")
ReplaceString("VK_F17", "WXK_F17")
ReplaceString("VK_F18", "WXK_F18")
ReplaceString("VK_F19", "WXK_F19")
ReplaceString("VK_F20", "WXK_F20")
ReplaceString("VK_F21", "WXK_F21")
ReplaceString("VK_F22", "WXK_F22")
ReplaceString("VK_F23", "WXK_F23")
ReplaceString("VK_F24", "WXK_F24")
ReplaceString("VK_NUMLOCK", "WXK_NUMLOCK")
ReplaceString("VK_SCROLL", "WXK_SCROLL")
ReplaceString("VK_PRIOR", "WXK_PAGEUP")
ReplaceString("VK_NEXT", "WXK_PAGEDOWN")
' Global function
ReplaceString("Sleep", "wxMilliSleep")
ReplaceString("GetCursorPos", "wxGetMousePosition")
' Stuffs which has space in it.
DTE.Find.MatchWholeWord = False
ReplaceString("afx_msg ", "")
' Stuffs that cannot be changed using macro.
'ReplaceString("min", "std::min")
'ReplaceString("max", "std::max")
End Sub
End Module
feel free to use if you like or post it to the relevant people.
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Re: Doom 3 engine release and game code
Aye, thanks. I passed it onto devs who were wondering about it.
Btw, would it be hard to get depth buffer exposed in Doom 3 ? (so its info could be used in the shaders)
Btw, would it be hard to get depth buffer exposed in Doom 3 ? (so its info could be used in the shaders)
- motorsep
- Posts: 231
- Joined: Wed Aug 02, 2006 11:46 pm
- Location: Texas, USA
Re: Doom 3 engine release and game code
motorsep wrote:AF editor (ragdolls), Sounds editor, GUI editor, Lights editor and something else (I think Scripts/Def editor) was not re-created by DarkMod folks. DarkRadiant only has particle editor and material highlighter and real-time preview. That's all.
Dhewm3 branch folks were asking if someone can convert mfc stuff into qt, so if you can do it, please do itThat's kinda more important than GLSL port because without proper tools it's sorta pointless to even mess with Doom 3 engine.
As I stated before, there is a Light Editor (with the same or better capability as Doom 3's).
As for the other editor types, they are better done in Blender (AF or Animation) or in the case of GUI, Scripts, Defs etc... those are better done in a text editor
because neither Doom 3 nor any other editor has a GUI method to create those items.
They are essentially code anyway (and arguably should be hard-coded for most projects).
Someone "could" develop a Dark Radiant plugin to add GUI editing or other features as well (it's extensible).
Please do not slander Dark Radiant because I requested that you review how the Doom 3 "material system" works verses what the editor does.
Doom 3's tools do mostly the same thing and are (mostly) less capable than Dark Radiant. AFAIK, even the OverDose project with their own tools and Quake 2 based engine still
occasionally uses Dark Radiant because of the superior UI and Toolset for some workflows. Talk to Doom 3 mappers and modders who've used Radiant branches and
I guarantee Dark Radiant will be at the top of their list.
Visit http://darkradiant.sourceforge.net/index.php
And view the all the Announcements for "Full list of Changes" if you don't believe me.
http://darkradiant.sourceforge.net/changes.1.7.0.php
http://darkradiant.sourceforge.net/changes.1.6.0.php
http://darkradiant.sourceforge.net/changes.1.5.0.php
http://darkradiant.sourceforge.net/changes.1.4.0.php
http://darkradiant.sourceforge.net/changes.1.3.1.php
http://darkradiant.sourceforge.net/changes.1.3.0.php
http://darkradiant.sourceforge.net/changes.1.2.0.php
http://darkradiant.sourceforge.net/changes.1.1.0.php
- nbohr1more
- Posts: 54
- Joined: Fri Dec 09, 2011 7:04 am
Re: Doom 3 engine release and game code
nbohr1more wrote:As I stated before, there is a Light Editor (with the same or better capability as Doom 3's).
I am totally failing to find Light Editor in the DarkRadiant (nor do I see any mention of it in the logs from the last version down to 1.4) :/ Can I get some help here ?
nbohr1more wrote:As for the other editor types, they are better done in Blender (AF or Animation)
While I sure know how to animate in Blender, I am failing to see how to setup articulate figure in Blender and get AF file out. Don't you need to do it in game to instantly preview how joints work ?
nbohr1more wrote:or in the case of GUI, Scripts, Defs etc... those are better done in a text editor
because neither Doom 3 nor any other editor has a GUI method to create those items.
I saw a tutorial back in the days where GUI editor was used to create a layout of the containers for menu / GUI images. Then using the template and notepad one could add content and interaction (manually coding it, but the template with the layout is a great help imo).
nbohr1more wrote:Please do not slander Dark Radiant because I requested that you review how the Doom 3 "material system" works verses what the editor does.
huh? I don't recall ever talking about anything with you :/ And I don't slander DarkRadiant. I just get contradicting reports from various people about what DR can do and what it can't do.
- motorsep
- Posts: 231
- Joined: Wed Aug 02, 2006 11:46 pm
- Location: Texas, USA
Re: Doom 3 engine release and game code
Alright.
Lets start here:
http://wiki.thedarkmod.com/index.php?ti ... Start_Here!
http://wiki.thedarkmod.com/index.php?ti ... ng_a_Light
http://wiki.thedarkmod.com/index.php?ti ... ng_a_Light
http://wiki.thedarkmod.com/index.php?ti ... Brightness
http://wiki.thedarkmod.com/index.php?ti ... diant_Keys
F3 changes the different render modes (real light vs just textured).
Lets start here:
http://wiki.thedarkmod.com/index.php?ti ... Start_Here!
http://wiki.thedarkmod.com/index.php?ti ... ng_a_Light
http://wiki.thedarkmod.com/index.php?ti ... ng_a_Light
http://wiki.thedarkmod.com/index.php?ti ... Brightness
http://wiki.thedarkmod.com/index.php?ti ... diant_Keys
F3 changes the different render modes (real light vs just textured).
- nbohr1more
- Posts: 54
- Joined: Fri Dec 09, 2011 7:04 am
Re: Doom 3 engine release and game code
I think motorsep is just trying to find out what tools are availiable for working with doom3 materials
im sure he newer ment to slander.
Acessing the depthbuffer can be done in engine but it kinda defeats the idea of a shader based system to do it hardcoded unless for one specific project like yours
its surely doable but maybe better to wait for the backend to work (also has more appeal to the general public).
I hope my macro comes in handy thinking about it it maybe possible to modify it for QT use also.
Acessing the depthbuffer can be done in engine but it kinda defeats the idea of a shader based system to do it hardcoded unless for one specific project like yours
I hope my macro comes in handy thinking about it it maybe possible to modify it for QT use also.
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Re: Doom 3 engine release and game code
nbohr1more wrote:Alright.
Lets start here:
F3 changes the different render modes (real light vs just textured).
Aye, looking into it. What about Sound Editor and AF Editor? What can replace those?
- motorsep
- Posts: 231
- Joined: Wed Aug 02, 2006 11:46 pm
- Location: Texas, USA
Re: Doom 3 engine release and game code
reckless wrote:I think motorsep is just trying to find out what tools are availiable for working with doom3 materialsim sure he newer ment to slander.
Acessing the depthbuffer can be done in engine but it kinda defeats the idea of a shader based system to do it hardcoded unless for one specific project like yoursits surely doable but maybe better to wait for the backend to work (also has more appeal to the general public).
I hope my macro comes in handy thinking about it it maybe possible to modify it for QT use also.
Apparently no one wants to have built-in editors :/ So they are willing to simply rip those off
Well, I certainly would like to have GLSL backend working with depth buffer accessible, but I am 99% certain it's not going to happen this year. Meanwhile I would certainly love to produce screenshots and videos for PR purposes
That's why I wouldn't mind a patch for dhewm3 branch so we could get ink outline going
- motorsep
- Posts: 231
- Joined: Wed Aug 02, 2006 11:46 pm
- Location: Texas, USA
Re: Doom 3 engine release and game code
Newer say newer
im not the only one working on one
but if push comes to shove and it takes to long ill see if i can draft some help finishing what i got.
but if push comes to shove and it takes to long ill see if i can draft some help finishing what i got.
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Re: Doom 3 engine release and game code
Compiled a version of dhewm with mingw64 for 64 bit Windows 7 seems to be working ok and ill probably start moving my changes over to that when im done.
If anyone want the build to toy with comparisons ill upload it on my site.
Note it uses SDL and newer versions of vorbis ogg curl and jpeg, my curl has openssl and openssh bindings so one could toy with security hehe.
If anyone want the build to toy with comparisons ill upload it on my site.
Note it uses SDL and newer versions of vorbis ogg curl and jpeg, my curl has openssl and openssh bindings so one could toy with security hehe.
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Re: Doom 3 engine release and game code
shots showing what can be done with arb2 shaders
I cannot upload my mod unfortunatly as its size is to much for my hosting. If anyone wants to toy with it let me know and ill setup a temporary ftp host.
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Re: Doom 3 engine release and game code
wow!Awesome stuff reckless! You really powered up doom3 engine! Rocks are beautiful! They seem to be really 3d!
A thing that I don't like with d3 engine is that I never see any mod/tc with a outdoor scene with a warm/soft sunlight. I think that's because d3 wasn't built to visualize such type of scene
A thing that I don't like with d3 engine is that I never see any mod/tc with a outdoor scene with a warm/soft sunlight. I think that's because d3 wasn't built to visualize such type of scene
Meadow Fun!! - my first commercial game, made with FTEQW game engine
- toneddu2000
- Posts: 1352
- Joined: Tue Feb 24, 2009 4:39 pm
- Location: Italy
Re: Doom 3 engine release and game code
Hello reckless,
the only thing that I dont like are the extreme shiny "wet" surfaces.
That gives a plastic look (just like the _gloss textures in DarkPlaces).
I mean, did it rain recently in hell ?
Your last screenshot shows how beautiful it can be.
I love this one
http://www.bild.me/bild.php?file=8949540shot00033.jpg
I wish Doom 3 had more hellish levels. And not the industrial/base ones.
But that is "Doom"-like. I guess I have to stick to Quake1 then...
The best Doom3 mod, that left my jaw open all the time and had this "Quake" feeling
is "In Hell - Director´s cut" by Doomi.
I guess when I would play this mod together with your extended engine, it will be exactly what I wanted
Could you please try to load up the "In Hell" mod with your engine files ?
Thank you for all your efforts reckless !
Best wishes,
Seven
the only thing that I dont like are the extreme shiny "wet" surfaces.
That gives a plastic look (just like the _gloss textures in DarkPlaces).
I mean, did it rain recently in hell ?
Your last screenshot shows how beautiful it can be.
I love this one
http://www.bild.me/bild.php?file=8949540shot00033.jpg
I wish Doom 3 had more hellish levels. And not the industrial/base ones.
But that is "Doom"-like. I guess I have to stick to Quake1 then...
The best Doom3 mod, that left my jaw open all the time and had this "Quake" feeling
is "In Hell - Director´s cut" by Doomi.
I guess when I would play this mod together with your extended engine, it will be exactly what I wanted
Could you please try to load up the "In Hell" mod with your engine files ?
Thank you for all your efforts reckless !
Best wishes,
Seven
- Seven
- Posts: 301
- Joined: Sat Oct 06, 2007 8:49 pm
- Location: Germany
Re: Doom 3 engine release and game code
The shiny textures are actually a bug
npot textures from wulfens texture pack are doing some odd stuff in places (mirrror effect on some materials) i resized the textures in question and it works now.
In hell mod runs fine on my port allthough theres a lot of warnings about autosprites ??? hmm it looks quite fine though so might be a side effect of the enhanced shaders im using (no visual artifacts).
Better way than mine is to redo the whole thing which would kill incompatibilities like that but its a lot more work also. its basically the same problem as with Quake 1 in so far that i replace ingame textures by high res
ones but the doom3 engine is a lot more advanced than quake1 so there are more pitfalls. Shaders are another matter which need to be looked into, arb2 shader scripts in its days where quite ok but to really push the boundaries we need glslang (humanhead studios made some uber cool additions to doom3's shaders and i hope they can be convinced to share the code. There shader code atleast would help immensly).
In hell mod runs fine on my port allthough theres a lot of warnings about autosprites ??? hmm it looks quite fine though so might be a side effect of the enhanced shaders im using (no visual artifacts).
Better way than mine is to redo the whole thing which would kill incompatibilities like that but its a lot more work also. its basically the same problem as with Quake 1 in so far that i replace ingame textures by high res
ones but the doom3 engine is a lot more advanced than quake1 so there are more pitfalls. Shaders are another matter which need to be looked into, arb2 shader scripts in its days where quite ok but to really push the boundaries we need glslang (humanhead studios made some uber cool additions to doom3's shaders and i hope they can be convinced to share the code. There shader code atleast would help immensly).
Productivity is a state of mind.
-

revelator - Posts: 2567
- Joined: Thu Jan 24, 2008 12:04 pm
- Location: inside tha debugger
Who is online
Users browsing this forum: No registered users and 1 guest