Forum

Doom 3 engine release and game code

Discuss programming topics for any language, any source base. If it is programming related but doesn't fit in one of the below categories, it goes here.

Moderator: InsideQC Admins

Re: Doom 3 engine release and game code

Postby motorsep » Mon Jul 02, 2012 6:19 am

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.
motorsep
 
Posts: 231
Joined: Wed Aug 02, 2006 11:46 pm
Location: Texas, USA

Re: Doom 3 engine release and game code

Postby revelator » Mon Jul 02, 2012 12:52 pm

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 :mrgreen:

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.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Doom 3 engine release and game code

Postby motorsep » Mon Jul 02, 2012 6:50 pm

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)
motorsep
 
Posts: 231
Joined: Wed Aug 02, 2006 11:46 pm
Location: Texas, USA

Re: Doom 3 engine release and game code

Postby nbohr1more » Mon Jul 02, 2012 11:35 pm

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 it :) That'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

Postby motorsep » Tue Jul 03, 2012 12:02 am

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

Postby revelator » Tue Jul 03, 2012 3:05 am

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.
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Doom 3 engine release and game code

Postby motorsep » Tue Jul 03, 2012 3:34 am

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

Postby motorsep » Tue Jul 03, 2012 3:37 am

reckless wrote: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.


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

Postby revelator » Tue Jul 03, 2012 5:59 am

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.
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Doom 3 engine release and game code

Postby revelator » Tue Jul 03, 2012 1:15 pm

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.
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Doom 3 engine release and game code

Postby revelator » Wed Jul 04, 2012 6:18 am

Image
Image
Image
Image

shots showing what can be done with arb2 shaders :) this unfortunatly is the bulk of it and its quite buggy in places cause it uses stuff you cannot normally do with arb2 (ssao etc).
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.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Doom 3 engine release and game code

Postby toneddu2000 » Wed Jul 04, 2012 7:18 am

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
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

Postby Seven » Wed Jul 04, 2012 11:33 am

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
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Re: Doom 3 engine release and game code

Postby revelator » Wed Jul 04, 2012 6:11 pm

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).
Productivity is a state of mind.
User avatar
revelator
 
Posts: 2567
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

PreviousNext

Return to General Programming

Who is online

Users browsing this forum: No registered users and 1 guest