From c02cc3ee3fa5baca5db9c74d8cfc1df295a921fd Mon Sep 17 00:00:00 2001 From: danij Date: Mon, 19 Dec 2011 17:37:12 +0000 Subject: [PATCH] Refactor: Use Point2Raw to represent HUD widget origins --- doomsday/plugins/common/include/hu_automap.h | 2 +- doomsday/plugins/common/include/hu_chat.h | 2 +- doomsday/plugins/common/include/hu_lib.h | 4 +- doomsday/plugins/common/include/hu_log.h | 2 +- doomsday/plugins/common/src/hu_automap.c | 195 ++++------ doomsday/plugins/common/src/hu_chat.c | 15 +- doomsday/plugins/common/src/hu_lib.c | 66 ++-- doomsday/plugins/common/src/hu_log.c | 15 +- doomsday/plugins/jdoom/src/st_stuff.c | 278 ++++---------- doomsday/plugins/jheretic/src/st_stuff.c | 319 +++++----------- doomsday/plugins/jhexen/src/st_stuff.c | 373 +++++-------------- 11 files changed, 390 insertions(+), 881 deletions(-) diff --git a/doomsday/plugins/common/include/hu_automap.h b/doomsday/plugins/common/include/hu_automap.h index aca21ff688..3067033939 100644 --- a/doomsday/plugins/common/include/hu_automap.h +++ b/doomsday/plugins/common/include/hu_automap.h @@ -146,7 +146,7 @@ void UIAutomap_Rebuild(uiwidget_t* obj); void UIAutomap_ClearLists(uiwidget_t* obj); void UIAutomap_Reset(uiwidget_t* obj); -void UIAutomap_Drawer(uiwidget_t* obj, int x, int y); +void UIAutomap_Drawer(uiwidget_t* obj, const Point2Raw* origin); boolean UIAutomap_Open(uiwidget_t* obj, boolean yes, boolean fast); void UIAutomap_Ticker(uiwidget_t* obj, timespan_t ticLength); diff --git a/doomsday/plugins/common/include/hu_chat.h b/doomsday/plugins/common/include/hu_chat.h index 844e9eb555..bbeaefa010 100644 --- a/doomsday/plugins/common/include/hu_chat.h +++ b/doomsday/plugins/common/include/hu_chat.h @@ -80,7 +80,7 @@ int UIChat_Responder(uiwidget_t* obj, event_t* ev); int UIChat_CommandResponder(uiwidget_t* obj, menucommand_e cmd); /// Draw this widget. -void UIChat_Drawer(uiwidget_t* obj, int x, int y); +void UIChat_Drawer(uiwidget_t* obj, const Point2Raw* origin); /// Calculate the "physical" dimensions of this widget in fixed-pixels. void UIChat_UpdateGeometry(uiwidget_t* obj); diff --git a/doomsday/plugins/common/include/hu_lib.h b/doomsday/plugins/common/include/hu_lib.h index 9f8a78bb14..696cd0b583 100644 --- a/doomsday/plugins/common/include/hu_lib.h +++ b/doomsday/plugins/common/include/hu_lib.h @@ -761,7 +761,7 @@ typedef struct uiwidget_s { float alpha; void (*updateGeometry) (struct uiwidget_s* obj); - void (*drawer) (struct uiwidget_s* obj, int x, int y); + void (*drawer) (struct uiwidget_s* obj, const Point2Raw* origin); void (*ticker) (struct uiwidget_s* obj, timespan_t ticLength); void* typedata; @@ -1003,7 +1003,7 @@ uiwidget_t* GUI_FindObjectById(uiwidgetid_t id); uiwidget_t* GUI_MustFindObjectById(uiwidgetid_t id); uiwidgetid_t GUI_CreateWidget(guiwidgettype_t type, int player, fontid_t fontId, float alpha, - void (*updateGeometry) (uiwidget_t* obj), void (*drawer) (uiwidget_t* obj, int x, int y), + void (*updateGeometry) (uiwidget_t* obj), void (*drawer) (uiwidget_t* obj, const Point2Raw* origin), void (*ticker) (uiwidget_t* obj, timespan_t ticLength), void* typedata); uiwidgetid_t GUI_CreateGroup(int player, int groupFlags, int alignFlags, int padding); diff --git a/doomsday/plugins/common/include/hu_log.h b/doomsday/plugins/common/include/hu_log.h index 333212e6f3..23855aa79a 100644 --- a/doomsday/plugins/common/include/hu_log.h +++ b/doomsday/plugins/common/include/hu_log.h @@ -84,7 +84,7 @@ typedef struct { void UILog_Ticker(uiwidget_t* obj, timespan_t ticLength); /// Draw this message log widget. -void UILog_Drawer(uiwidget_t* obj, int x, int y); +void UILog_Drawer(uiwidget_t* obj, const Point2Raw* origin); /// Calculate the "physical" dimensions of this widget. void UILog_UpdateGeometry(uiwidget_t* obj); diff --git a/doomsday/plugins/common/src/hu_automap.c b/doomsday/plugins/common/src/hu_automap.c index 89734667bb..d189ca7cf9 100644 --- a/doomsday/plugins/common/src/hu_automap.c +++ b/doomsday/plugins/common/src/hu_automap.c @@ -1384,19 +1384,17 @@ void UIAutomap_Rebuild(uiwidget_t* obj) /** * Render the automap view window for the specified player. */ -void UIAutomap_Drawer(uiwidget_t* obj, int x, int y) +void UIAutomap_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { static int updateWait = 0; guidata_automap_t* am = (guidata_automap_t*)obj->typedata; const float alpha = uiRendState->pageAlpha; player_t* plr = &players[UIWidget_Player(obj)]; float vx, vy, angle, oldLineWidth; + assert(obj->type == GUI_AUTOMAP); - if(!plr->plr->inGame) - return; + if(!plr->plr->inGame) return; // Configure render state: rs.plr = plr; @@ -1530,20 +1528,16 @@ DGL_End(); // Return to the normal GL state. DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } boolean UIAutomap_Open(uiwidget_t* obj, boolean yes, boolean fast) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); - if(G_GameState() != GS_MAP && yes) - return false; + if(G_GameState() != GS_MAP && yes) return false; - if(yes == am->active) - return false; // No change. + if(yes == am->active) return false; // No change. am->targetAlpha = (yes? 1.f : 0.f); if(fast) @@ -1595,17 +1589,15 @@ boolean UIAutomap_Open(uiwidget_t* obj, boolean yes, boolean fast) DD_Execute(true, "deactivatebcontext map-freepan"); } return true; - } } void UIAutomap_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; const int player = UIWidget_Player(obj); const mobj_t* mo = UIAutomap_FollowMobj(obj); float panX[2], panY[2], zoomVel, zoomSpeed, width, height, scale; + assert(obj->type == GUI_AUTOMAP); // Check the state of the controls. Done here so that offsets don't accumulate // unnecessarily, as they would, if left unread. @@ -1824,33 +1816,29 @@ void UIAutomap_Ticker(uiwidget_t* obj, timespan_t ticLength) #undef ADDTOBOX } - } } float UIAutomap_MapToFrame(uiwidget_t* obj, float val) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return MTOF(am, val); - } } float UIAutomap_FrameToMap(uiwidget_t* obj, float val) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return FTOM(am, val); - } } void UIAutomap_UpdateGeometry(uiwidget_t* obj) { - assert(obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; RectRaw newGeom; + assert(obj->type == GUI_AUTOMAP); // Determine whether the available space has changed and thus whether // the position and/or size of the automap must therefore change too. @@ -1867,7 +1855,6 @@ void UIAutomap_UpdateGeometry(uiwidget_t* obj) // factors accordingly. am->updateViewScale = true; } - } } void UIAutomap_SetOrigin(uiwidget_t* obj, int x, int y) @@ -1892,20 +1879,18 @@ void UIAutomap_SetSize(uiwidget_t* obj, int w, int h) void UIAutomap_CameraOrigin(uiwidget_t* obj, float* x, float* y) { - assert(obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(x) *x = am->viewX; if(y) *y = am->viewY; - } } boolean UIAutomap_SetCameraOrigin(uiwidget_t* obj, float x, float y) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; boolean instantChange = false; + assert(obj->type == GUI_AUTOMAP); x = MINMAX_OF(-32768, x, 32768); y = MINMAX_OF(-32768, y, 32768); @@ -1943,58 +1928,52 @@ boolean UIAutomap_SetCameraOrigin(uiwidget_t* obj, float x, float y) am->viewTimer = 0; } return true; - } } boolean UIAutomap_TranslateCameraOrigin(uiwidget_t* obj, float x, float y) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return UIAutomap_SetCameraOrigin(obj, am->viewX + x, am->viewY + y); - } } void UIAutomap_ParallaxLayerOrigin(uiwidget_t* obj, float* x, float* y) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(x) *x = am->viewPLX; if(y) *y = am->viewPLY; - } } float UIAutomap_CameraAngle(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->angle; - } } boolean UIAutomap_SetCameraAngle(uiwidget_t* obj, float angle) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + angle = MINMAX_OF(0, angle, 359.9999f); - if(angle == am->targetAngle) - return false; + if(angle == am->targetAngle) return false; am->oldAngle = am->angle; am->targetAngle = angle; // Restart the timer. am->angleTimer = 0; return true; - } } boolean UIAutomap_SetScale(uiwidget_t* obj, float scale) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(am->updateViewScale) calcViewScaleFactors(obj); @@ -2010,61 +1989,56 @@ boolean UIAutomap_SetScale(uiwidget_t* obj, float scale) am->targetViewScale = scale; return true; - } } boolean UIAutomap_Active(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->active; - } } boolean UIAutomap_Reveal(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->reveal; - } } boolean UIAutomap_SetReveal(uiwidget_t* obj, boolean yes) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; boolean oldReveal = am->reveal; + assert(obj->type == GUI_AUTOMAP); + am->reveal = yes; if(oldReveal != am->reveal) { UIAutomap_Rebuild(obj); } return false; - } } void UIAutomap_PVisibleAABounds(const uiwidget_t* obj, float* lowX, float* hiX, float* lowY, float* hiY) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(lowX) *lowX = am->viewAABB[BOXLEFT]; if(hiX) *hiX = am->viewAABB[BOXRIGHT]; if(lowY) *lowY = am->viewAABB[BOXBOTTOM]; if(hiY) *hiY = am->viewAABB[BOXTOP]; - } } void UIAutomap_VisibleBounds(const uiwidget_t* obj, float topLeft[2], float bottomRight[2], float topRight[2], float bottomLeft[2]) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(topLeft) { topLeft[0] = am->topLeft[0]; @@ -2085,43 +2059,41 @@ void UIAutomap_VisibleBounds(const uiwidget_t* obj, float topLeft[2], bottomLeft[0] = am->bottomLeft[0]; bottomLeft[1] = am->bottomLeft[1]; } - } } void UIAutomap_ClearPoints(uiwidget_t* obj) { - assert(obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; int i; + assert(obj->type == GUI_AUTOMAP); + for(i = 0; i < MAX_MAP_POINTS; ++i) + { am->pointsUsed[i] = false; - am->pointCount = 0; } + am->pointCount = 0; } int UIAutomap_PointCount(const uiwidget_t* obj) { - assert(obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; int i, used = 0; + assert(obj->type == GUI_AUTOMAP); + for(i = 0; i < MAX_MAP_POINTS; ++i) { if(am->pointsUsed[i]) ++used; } return used; - } } int UIAutomap_AddPoint(uiwidget_t* obj, float x, float y, float z) { - assert(obj != NULL && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; unsigned int newIdx; guidata_automap_point_t* point; + assert(obj->type == GUI_AUTOMAP); newIdx = am->pointCount; point = &am->points[newIdx]; @@ -2132,16 +2104,15 @@ int UIAutomap_AddPoint(uiwidget_t* obj, float x, float y, float z) ++am->pointCount; return newIdx; - } } boolean UIAutomap_PointOrigin(const uiwidget_t* obj, int pointIdx, float* x, float* y, float* z) { - assert(obj != NULL && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; - if(!x && !y && !z) - return false; + assert(obj->type == GUI_AUTOMAP); + + if(!x && !y && !z) return false; + if(pointIdx >= 0 && pointIdx < MAX_MAP_POINTS && am->pointsUsed[pointIdx]) { const guidata_automap_point_t* point = &am->points[pointIdx]; @@ -2151,24 +2122,21 @@ boolean UIAutomap_PointOrigin(const uiwidget_t* obj, int pointIdx, float* x, flo return true; } return false; - } } boolean UIAutomap_ZoomMax(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->forceMaxScale; - } } boolean UIAutomap_SetZoomMax(uiwidget_t* obj, boolean on) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; boolean oldZoomMax = am->forceMaxScale; + assert(obj->type == GUI_AUTOMAP); if(am->updateViewScale) calcViewScaleFactors(obj); @@ -2180,24 +2148,22 @@ boolean UIAutomap_SetZoomMax(uiwidget_t* obj, boolean on) am->forceMaxScale = on; UIAutomap_SetScale(obj, (am->forceMaxScale? 0 : am->priorToMaxScale)); return (oldZoomMax != am->forceMaxScale); - } } boolean UIAutomap_PanMode(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->pan; - } } boolean UIAutomap_SetPanMode(uiwidget_t* obj, boolean on) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; boolean oldPanMode = am->pan; + assert(obj->type == GUI_AUTOMAP); + am->pan = on; if(oldPanMode != am->pan) { @@ -2205,61 +2171,54 @@ boolean UIAutomap_SetPanMode(uiwidget_t* obj, boolean on) return true; } return false; - } } mobj_t* UIAutomap_FollowMobj(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + if(players[am->followPlayer].plr->inGame) { return players[am->followPlayer].plr->mo; } return NULL; - } } boolean UIAutomap_CameraRotation(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->rotate; - } } boolean UIAutomap_SetCameraRotation(uiwidget_t* obj, boolean on) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; boolean oldRotate = am->rotate; + assert(obj->type == GUI_AUTOMAP); + am->rotate = on; return (oldRotate != am->rotate); - } } float UIAutomap_Opacity(const uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->alpha; - } } boolean UIAutomap_SetOpacity(uiwidget_t* obj, float value) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); value = MINMAX_OF(0, value, 1); // Already at this target? - if(value == am->targetAlpha) - return false; + if(value == am->targetAlpha) return false; am->oldAlpha = am->alpha; // Restart the timer. @@ -2267,58 +2226,52 @@ boolean UIAutomap_SetOpacity(uiwidget_t* obj, float value) am->targetAlpha = value; return true; - } } int UIAutomap_Flags(const uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + return am->flags; - } } void UIAutomap_SetFlags(uiwidget_t* obj, int flags) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + am->flags = flags; // We will need to rebuild one or more display lists. UIAutomap_Rebuild(obj); - } } void UIAutomap_SetWorldBounds(uiwidget_t* obj, float lowX, float hiX, float lowY, float hiY) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + am->bounds[BOXLEFT] = lowX; am->bounds[BOXTOP] = hiY; am->bounds[BOXRIGHT] = hiX; am->bounds[BOXBOTTOM] = lowY; am->updateViewScale = true; - } } void UIAutomap_SetMinScale(uiwidget_t* obj, const float scale) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + am->minScale = MAX_OF(1, scale); am->updateViewScale = true; - } } void UIAutomap_SetCameraOriginFollowMoveDelta(uiwidget_t* obj, float max) { - assert(NULL != obj && obj->type == GUI_AUTOMAP); - { guidata_automap_t* am = (guidata_automap_t*)obj->typedata; + assert(obj->type == GUI_AUTOMAP); + am->maxViewPositionDelta = MINMAX_OF(0, max, 32768*2); - } } diff --git a/doomsday/plugins/common/src/hu_chat.c b/doomsday/plugins/common/src/hu_chat.c index 6ebd08bbc1..4c1711500b 100644 --- a/doomsday/plugins/common/src/hu_chat.c +++ b/doomsday/plugins/common/src/hu_chat.c @@ -351,22 +351,20 @@ int UIChat_CommandResponder(uiwidget_t* obj, menucommand_e cmd) } } -void UIChat_Drawer(uiwidget_t* obj, int x, int y) +void UIChat_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(NULL != obj && obj->type == GUI_CHAT); - { //guidata_chat_t* chat = (guidata_chat_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; //const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; const char* text = UIChat_Text(obj); int xOffset, textWidth, cursorWidth; + assert(obj->type == GUI_CHAT); - if(!UIChat_IsActive(obj)) - return; + if(!UIChat_IsActive(obj)) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.msgScale, cfg.msgScale, 1); FR_SetFont(obj->font); @@ -392,23 +390,20 @@ void UIChat_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void UIChat_UpdateGeometry(uiwidget_t* obj) { - assert(obj && obj->type == GUI_CHAT); - { const char* text = UIChat_Text(obj); obj->geometry.size.width = 0; obj->geometry.size.height = 0; + assert(obj->type == GUI_CHAT); if(!UIChat_IsActive(obj)) return; FR_SetFont(obj->font); obj->geometry.size.width = cfg.msgScale * (FR_TextWidth(text) + FR_CharWidth('_')); obj->geometry.size.height = cfg.msgScale * (MAX_OF(FR_TextHeight(text), FR_CharHeight('_'))); - } } int UIChat_ParseDestination(const char* str) diff --git a/doomsday/plugins/common/src/hu_lib.c b/doomsday/plugins/common/src/hu_lib.c index 7018a4d732..fd80db46ee 100644 --- a/doomsday/plugins/common/src/hu_lib.c +++ b/doomsday/plugins/common/src/hu_lib.c @@ -107,21 +107,20 @@ static uiwidget_t* allocateWidget(guiwidgettype_t type, uiwidgetid_t id, int pla { uiwidget_t* obj; widgets = (uiwidget_t*) realloc(widgets, sizeof(*widgets) * ++numWidgets); - if(NULL == widgets) - Con_Error("allocateWidget: Failed on (re)allocation of %lu bytes for new widget.", - (unsigned long) (sizeof(*widgets) * numWidgets)); + if(!widgets) Con_Error("allocateWidget: Failed on (re)allocation of %lu bytes for new widget.", (unsigned long) (sizeof(*widgets) * numWidgets)); + obj = &widgets[numWidgets-1]; memset(obj, 0, sizeof(*obj)); obj->type = type; obj->id = id; obj->player = player; + switch(obj->type) { case GUI_GROUP: { guidata_group_t* grp = (guidata_group_t*)calloc(1, sizeof(*grp)); - if(NULL == grp) - Con_Error("allocateWidget: Failed on (re)allocation of %lu bytes for GUI_GROUP typedata.", - (unsigned long) sizeof(*grp)); + if(!grp) Con_Error("allocateWidget: Failed on (re)allocation of %lu bytes for GUI_GROUP typedata.", (unsigned long) sizeof(*grp)); + obj->typedata = grp; break; } @@ -130,6 +129,7 @@ static uiwidget_t* allocateWidget(guiwidgettype_t type, uiwidgetid_t id, int pla obj->typedata = typedata; break; } + switch(obj->type) { case GUI_AUTOMAP: { @@ -149,12 +149,13 @@ static uiwidget_t* allocateWidget(guiwidgettype_t type, uiwidgetid_t id, int pla } default: break; } + return obj; } static uiwidget_t* createWidget(guiwidgettype_t type, int player, fontid_t fontId, float alpha, int alignFlags, void (*updateGeometry) (uiwidget_t* obj), - void (*drawer) (uiwidget_t* obj, int x, int y), + void (*drawer) (uiwidget_t* obj, const Point2Raw* origin), void (*ticker) (uiwidget_t* obj, timespan_t ticLength), void* typedata) { uiwidget_t* obj = allocateWidget(type, nextUnusedId(), player, typedata); @@ -170,9 +171,9 @@ static uiwidget_t* createWidget(guiwidgettype_t type, int player, fontid_t fontI static void clearWidgets(void) { + int i; if(0 == numWidgets) return; - { int i; for(i = 0; i < numWidgets; ++i) { uiwidget_t* obj = &widgets[i]; @@ -183,7 +184,7 @@ static void clearWidgets(void) free(grp->widgetIds); free(grp); } - }} + } free(widgets); widgets = NULL; numWidgets = 0; @@ -209,7 +210,9 @@ uiwidget_t* GUI_MustFindObjectById(uiwidgetid_t id) { uiwidget_t* obj = GUI_FindObjectById(id); if(!obj) + { Con_Error("GUI_MustFindObjectById: Failed to locate object with id %i.", (int) id); + } return obj; } @@ -241,8 +244,8 @@ void GUI_Shutdown(void) void GUI_LoadResources(void) { - if(Get(DD_DEDICATED) || Get(DD_NOVIDEO)) - return; + if(Get(DD_DEDICATED) || Get(DD_NOVIDEO)) return; + UIAutomap_LoadResources(); MNEdit_LoadResources(); MNSlider_LoadResources(); @@ -250,13 +253,13 @@ void GUI_LoadResources(void) void GUI_ReleaseResources(void) { - if(Get(DD_DEDICATED) || Get(DD_NOVIDEO)) - return; + if(Get(DD_DEDICATED) || Get(DD_NOVIDEO)) return; + UIAutomap_ReleaseResources(); } uiwidgetid_t GUI_CreateWidget(guiwidgettype_t type, int player, fontid_t fontId, float alpha, - void (*updateGeometry) (uiwidget_t* obj), void (*drawer) (uiwidget_t* obj, int x, int y), + void (*updateGeometry) (uiwidget_t* obj), void (*drawer) (uiwidget_t* obj, const Point2Raw* origin), void (*ticker) (uiwidget_t* obj, timespan_t ticLength), void* typedata) { uiwidget_t* obj; @@ -270,55 +273,57 @@ uiwidgetid_t GUI_CreateGroup(int player, int groupFlags, int alignFlags, int pad uiwidget_t* obj; guidata_group_t* grp; errorIfNotInited("GUI_CreateGroup"); + obj = createWidget(GUI_GROUP, player, 0, 1, alignFlags, UIGroup_UpdateGeometry, NULL, NULL, NULL); grp = (guidata_group_t*)obj->typedata; grp->flags = groupFlags; grp->padding = padding; + return obj->id; } void UIGroup_AddWidget(uiwidget_t* obj, uiwidget_t* other) { - assert(NULL != obj && obj->type == GUI_GROUP); - { guidata_group_t* grp = (guidata_group_t*)obj->typedata; + int i; + assert(obj->type == GUI_GROUP); - if(NULL == other) + if(!other || other == obj) + { +#if _DEBUG + Con_Message("Warning:UIGroup::AddWidget: Attempt to add invalid widget %s, ignoring.\n", obj? "(this)" : "(null)"); +#endif return; + } // Ensure widget is not already in this grp. - { int i; for(i = 0; i < grp->widgetIdCount; ++i) + { if(grp->widgetIds[i] == other->id) return; // Already present. Ignore. } // Must add to this grp. grp->widgetIds = (uiwidgetid_t*) realloc(grp->widgetIds, sizeof(*grp->widgetIds) * ++grp->widgetIdCount); - if(NULL == grp->widgetIds) - Con_Error("UIGroup::AddWidget: Failed on (re)allocation of %lu bytes for widget id list.", - (unsigned long) (sizeof(*grp->widgetIds) * grp->widgetIdCount)); + if(!grp->widgetIds) Con_Error("UIGroup::AddWidget: Failed on (re)allocation of %lu bytes for widget id list.", (unsigned long) (sizeof(*grp->widgetIds) * grp->widgetIdCount)); grp->widgetIds[grp->widgetIdCount-1] = other->id; - } } int UIGroup_Flags(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_GROUP); - { guidata_group_t* grp = (guidata_group_t*)obj->typedata; + assert(obj->type == GUI_GROUP); + return grp->flags; - } } void UIGroup_SetFlags(uiwidget_t* obj, int flags) { - assert(NULL != obj && obj->type == GUI_GROUP); - { guidata_group_t* grp = (guidata_group_t*)obj->typedata; + assert(obj->type == GUI_GROUP); + grp->flags = flags; - } } boolean GUI_RunGameTicTrigger(timespan_t ticLength) @@ -421,12 +426,15 @@ void UIGroup_UpdateGeometry(uiwidget_t* obj) static void drawWidget2(uiwidget_t* obj, int x, int y) { + Point2Raw origin; assert(obj); if(!obj->drawer || obj->alpha <= 0) return; uiRS.pageAlpha = obj->alpha; - obj->drawer(obj, x + obj->geometry.origin.x, y + obj->geometry.origin.y); + origin.x = x + obj->geometry.origin.x; + origin.y = y + obj->geometry.origin.y; + obj->drawer(obj, &origin); } static void drawWidget(uiwidget_t* obj, int x, int y) diff --git a/doomsday/plugins/common/src/hu_log.c b/doomsday/plugins/common/src/hu_log.c index 8c8842ee49..35f5b51127 100644 --- a/doomsday/plugins/common/src/hu_log.c +++ b/doomsday/plugins/common/src/hu_log.c @@ -289,10 +289,8 @@ void UILog_Ticker(uiwidget_t* obj, timespan_t ticLength) } } -void UILog_Drawer(uiwidget_t* obj, int xOrigin, int yOrigin) +void UILog_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(NULL != obj && obj->type == GUI_LOG); - { guidata_log_t* log = (guidata_log_t*)obj->typedata; const int alignFlags = ALIGN_TOP| ((cfg.msgAlign == 0)? ALIGN_LEFT : (cfg.msgAlign == 2)? ALIGN_RIGHT : 0); const short textFlags = DTF_NO_EFFECTS; @@ -303,17 +301,17 @@ void UILog_Drawer(uiwidget_t* obj, int xOrigin, int yOrigin) int drawnMsgCount, firstPVisMsg, firstMsg, lastMsg; float y, yOffset, scrollFactor, col[4]; guidata_log_message_t* msg; + assert(obj->type == GUI_LOG); /// \kludge Do not draw message logs while the map title is being displayed. - if(cfg.mapTitle && actualMapTime < 6 * 35) - return; + if(cfg.mapTitle && actualMapTime < 6 * 35) return; /// kludge end. if(0 == pvisMsgCount) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOrigin, yOrigin, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.msgScale, cfg.msgScale, 1); firstMsg = firstPVisMsg = UILog_FirstPVisMessageIdx(obj); @@ -436,19 +434,17 @@ void UILog_Drawer(uiwidget_t* obj, int xOrigin, int yOrigin) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void UILog_UpdateGeometry(uiwidget_t* obj) { - assert(NULL != obj && obj->type == GUI_LOG); - { guidata_log_t* log = (guidata_log_t*)obj->typedata; int lineHeight, lineWidth; int i, n, pvisMsgCount = MIN_OF(log->_pvisMsgCount, MAX_OF(0, cfg.msgCount)); int drawnMsgCount, firstPVisMsg, firstMsg, lastMsg; float scrollFactor; guidata_log_message_t* msg; + assert(obj->type == GUI_LOG); obj->geometry.size.width = 0; obj->geometry.size.height = 0; @@ -532,5 +528,4 @@ void UILog_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width *= cfg.msgScale; obj->geometry.size.height *= cfg.msgScale; - } } diff --git a/doomsday/plugins/jdoom/src/st_stuff.c b/doomsday/plugins/jdoom/src/st_stuff.c index 75efaba350..f6d23ba5ba 100644 --- a/doomsday/plugins/jdoom/src/st_stuff.c +++ b/doomsday/plugins/jdoom/src/st_stuff.c @@ -324,15 +324,13 @@ static int fullscreenMode(void) return (cfg.screenBlocks < 10? 0 : cfg.screenBlocks - 10); } -void SBarBackground_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarBackground_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define WIDTH (ST_WIDTH) #define HEIGHT (ST_HEIGHT) #define ORIGINX ((int)(-WIDTH/2)) #define ORIGINY ((int)(-HEIGHT * hud->showBar)) - assert(obj); - { const hudstate_t* hud = &hudStates[obj->player]; float x = ORIGINX, y = ORIGINY, w = WIDTH, h = HEIGHT, armsBGX; int fullscreen = fullscreenMode(); @@ -356,7 +354,7 @@ void SBarBackground_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_SetPatch(pStatusbar, DGL_CLAMP_TO_EDGE, DGL_CLAMP_TO_EDGE); @@ -538,7 +536,7 @@ void SBarBackground_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINY #undef ORIGINX #undef HEIGHT @@ -551,7 +549,6 @@ void SBarBackground_UpdateGeometry(uiwidget_t* obj) #define HEIGHT (ST_HEIGHT) assert(obj); - obj->geometry.size.width = 0; obj->geometry.size.height = 0; @@ -932,16 +929,13 @@ void ST_doPaletteStuff(int player) void ReadyAmmo_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; int player = obj->player; player_t* plr = &players[player]; ammotype_t ammoType; boolean found; - if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) - return; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; // Must redirect the pointer if the ready weapon has changed. found = false; @@ -956,18 +950,15 @@ void ReadyAmmo_Ticker(uiwidget_t* obj, timespan_t ticLength) { ammo->value = 1994; // Means "n/a". } - } } -void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) +void SBarReadyAmmo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_READYAMMOX) #define Y (ORIGINY+ST_READYAMMOY) - assert(obj); - { const guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -984,7 +975,7 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -998,7 +989,7 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef Y #undef X #undef ORIGINY @@ -1007,8 +998,6 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) void SBarReadyAmmo_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { const guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; char buf[20]; @@ -1024,28 +1013,24 @@ void SBarReadyAmmo_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + } void Ammo_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_ammo_t* ammo = (guidata_ammo_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; ammo->value = plr->ammo[ammo->ammotype].owned; - } } -void Ammo_Drawer(uiwidget_t* obj, int x, int y) +void Ammo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define MAXDIGITS (ST_AMMOWIDTH) - assert(obj); - { static const Point2Raw ammoPos[NUM_AMMO_TYPES] = { {ST_AMMOX, ST_AMMOY}, {ST_AMMOX, ST_AMMOY + (ST_AMMOHEIGHT * 1)}, @@ -1068,7 +1053,7 @@ void Ammo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1080,7 +1065,7 @@ void Ammo_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef MAXDIGITS #undef ORIGINY #undef ORIGINX @@ -1103,23 +1088,19 @@ void Ammo_UpdateGeometry(uiwidget_t* obj) void MaxAmmo_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_ammo_t* ammo = (guidata_ammo_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; ammo->value = plr->ammo[ammo->ammotype].max; - } } -void MaxAmmo_Drawer(uiwidget_t* obj, int x, int y) +void MaxAmmo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define MAXDIGITS (ST_MAXAMMOWIDTH) - assert(obj); - { static const Point2Raw ammoMaxPos[NUM_AMMO_TYPES] = { {ST_MAXAMMOX, ST_MAXAMMOY}, {ST_MAXAMMOX, ST_MAXAMMOY + (ST_AMMOHEIGHT * 1)}, @@ -1142,7 +1123,7 @@ void MaxAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1154,7 +1135,7 @@ void MaxAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef MAXDIGITS #undef ORIGINY #undef ORIGINX @@ -1177,24 +1158,20 @@ void MaxAmmo_UpdateGeometry(uiwidget_t* obj) void Health_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*) obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; hlth->value = plr->health; - } } -void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) +void SBarHealth_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_HEALTHX) #define Y (ORIGINY+ST_HEALTHY) - assert(obj); - { const guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1211,7 +1188,7 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -1227,7 +1204,7 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef Y #undef X #undef ORIGINY @@ -1236,8 +1213,6 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) void SBarHealth_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { const guidata_health_t* hlth = (guidata_health_t*)obj->typedata; char buf[20]; @@ -1252,21 +1227,19 @@ void SBarHealth_UpdateGeometry(uiwidget_t* obj) FR_SetFont(obj->font); obj->geometry.size.width = (FR_TextWidth(buf) + FR_CharWidth('%')) * cfg.statusbarScale; obj->geometry.size.height = MAX_OF(FR_TextHeight(buf), FR_CharHeight('%')) * cfg.statusbarScale; - } + } void Armor_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; armor->value = plr->armorPoints; - } } -void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) +void SBarArmor_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1274,8 +1247,6 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) #define Y (ORIGINY+ST_ARMORY) #define MAXDIGITS (ST_ARMORWIDTH) - assert(obj); - { const guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1291,7 +1262,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1305,7 +1276,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef MAXDIGITS #undef Y #undef X @@ -1315,8 +1286,6 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) void SBarArmor_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { const guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; char buf[20]; @@ -1331,16 +1300,14 @@ void SBarArmor_UpdateGeometry(uiwidget_t* obj) FR_SetFont(obj->font); obj->geometry.size.width = (FR_TextWidth(buf) + FR_CharWidth('%')) * cfg.statusbarScale; obj->geometry.size.height = MAX_OF(FR_TextHeight(buf), FR_CharHeight('%')) * cfg.statusbarScale; - } } void SBarFrags_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; frags->value = 0; for(i = 0; i < MAXPLAYERS; ++i) @@ -1348,18 +1315,15 @@ void SBarFrags_Ticker(uiwidget_t* obj, timespan_t ticLength) if(players[i].plr->inGame) frags->value += plr->frags[i] * (i != obj->player ? 1 : -1); } - } } -void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) +void SBarFrags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_FRAGSX) #define Y (ORIGINY+ST_FRAGSY) - assert(obj); - { const guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1377,7 +1341,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1390,7 +1354,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef Y #undef X #undef ORIGINY @@ -1399,8 +1363,6 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) void SBarFrags_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { const guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -1417,16 +1379,13 @@ void SBarFrags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } } -void SBarFace_Drawer(uiwidget_t* obj, int x, int y) +void SBarFace_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) - assert(obj); - { const guidata_face_t* face = (guidata_face_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1442,7 +1401,7 @@ void SBarFace_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -1454,7 +1413,7 @@ void SBarFace_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } + #undef ORIGINY #undef ORIGINX } @@ -1504,13 +1463,11 @@ void KeySlot_Ticker(uiwidget_t* obj, timespan_t ticLength) } } -void KeySlot_Drawer(uiwidget_t* obj, int x, int y) +void KeySlot_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) - assert(obj); - { static const Point2Raw elements[] = { { ORIGINX+ST_KEY0X, ORIGINY+ST_KEY0Y }, { ORIGINX+ST_KEY1X, ORIGINY+ST_KEY1Y }, @@ -1530,7 +1487,7 @@ void KeySlot_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -1546,15 +1503,13 @@ void KeySlot_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINY #undef ORIGINX } void KeySlot_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_keyslot_t* kslt = (guidata_keyslot_t*)obj->typedata; patchinfo_t info; @@ -1584,7 +1539,6 @@ void KeySlot_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } } typedef struct { @@ -1624,13 +1578,11 @@ void WeaponSlot_Ticker(uiwidget_t* obj, timespan_t ticLength) wpn->patchId = pArms[wpn->slot-1][used?1:0]; } -void WeaponSlot_Drawer(uiwidget_t* obj, int x, int y) +void WeaponSlot_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) - assert(obj); - { static const Point2Raw elements[] = { { ORIGINX+ST_ARMSX, ORIGINY+ST_ARMSY }, { ORIGINX+ST_ARMSX + ST_ARMSXSPACE, ORIGINY+ST_ARMSY }, @@ -1653,7 +1605,7 @@ void WeaponSlot_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -1665,15 +1617,13 @@ void WeaponSlot_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINY #undef ORIGINX } void WeaponSlot_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_weaponslot_t* wpns = (guidata_weaponslot_t*)obj->typedata; patchinfo_t info; @@ -1687,7 +1637,6 @@ void WeaponSlot_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = info.geometry.size.width * cfg.statusbarScale; obj->geometry.size.height = info.geometry.size.height * cfg.statusbarScale; - } } /* @@ -1803,8 +1752,6 @@ void ST_HUDSpriteSize(int sprite, float scale, int* width, int* height) void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -1817,13 +1764,10 @@ void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) if(players[i].plr->inGame) frags->value += plr->frags[i] * (i != obj->player ? 1 : -1); } - } } -void Frags_Drawer(uiwidget_t* obj, int x, int y) +void Frags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { const guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -1837,7 +1781,7 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1848,13 +1792,10 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Frags_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { const guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -1871,13 +1812,10 @@ void Frags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } -void Health_Drawer(uiwidget_t* obj, int x, int y) +void Health_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -1890,7 +1828,7 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1901,13 +1839,10 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Health_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; char buf[20]; @@ -1923,13 +1858,10 @@ void Health_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } -void HealthIcon_Drawer(uiwidget_t* obj, int x, int y) +void HealthIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; if(!cfg.hudShown[HUD_HEALTH]) return; @@ -1938,20 +1870,18 @@ void HealthIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); ST_drawHUDSprite(SPR_STIM, 0, 0, HOT_BLEFT, 1, iconAlpha, false, NULL, NULL); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void HealthIcon_UpdateGeometry(uiwidget_t* obj) { assert(obj); - { obj->geometry.size.width = 0; obj->geometry.size.height = 0; @@ -1962,13 +1892,10 @@ void HealthIcon_UpdateGeometry(uiwidget_t* obj) ST_HUDSpriteSize(SPR_STIM, 1, &obj->geometry.size.width, &obj->geometry.size.height); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } -void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) +void ReadyAmmo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -1982,7 +1909,7 @@ void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1993,13 +1920,10 @@ void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void ReadyAmmo_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; char buf[20]; @@ -2016,13 +1940,10 @@ void ReadyAmmo_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } void ReadyAmmoIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { static const int ammoSprite[NUM_AMMO_TYPES] = { SPR_AMMO, SPR_SBOX, @@ -2045,13 +1966,10 @@ void ReadyAmmoIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) icon->sprite = ammoSprite[ammoType]; break; } - } } -void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) +void ReadyAmmoIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; float scale; @@ -2063,7 +1981,7 @@ void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); scale = (icon->sprite == SPR_ROCK? .72f : 1); @@ -2071,13 +1989,10 @@ void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void ReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; float scale; @@ -2093,10 +2008,9 @@ void ReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) ST_HUDSpriteSize(icon->sprite, scale, &obj->geometry.size.width, &obj->geometry.size.height); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } -void Face_Drawer(uiwidget_t* obj, int x, int y) +void Face_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define EXTRA_SCALE .7f @@ -2104,6 +2018,7 @@ void Face_Drawer(uiwidget_t* obj, int x, int y) const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; patchinfo_t bgInfo; patchid_t pFace; + int x, y; if(!cfg.hudShown[HUD_FACE]) return; if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; @@ -2113,7 +2028,7 @@ void Face_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(EXTRA_SCALE * cfg.hudScale, EXTRA_SCALE * cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2163,10 +2078,8 @@ void Face_UpdateGeometry(uiwidget_t* obj) #undef EXTRA_SCALE } -void Armor_Drawer(uiwidget_t* obj, int x, int y) +void Armor_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -2180,7 +2093,7 @@ void Armor_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2191,13 +2104,10 @@ void Armor_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Armor_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; char buf[20]; @@ -2215,25 +2125,19 @@ void Armor_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } void ArmorIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_armoricon_t* icon = (guidata_armoricon_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; icon->sprite = (plr->armorType == 2 ? SPR_ARM2 : SPR_ARM1); - } } -void ArmorIcon_Drawer(uiwidget_t* obj, int x, int y) +void ArmorIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_armoricon_t* icon = (guidata_armoricon_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2244,20 +2148,17 @@ void ArmorIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); ST_drawHUDSprite(icon->sprite, 0, 0, HOT_BRIGHT, 1, iconAlpha, false, NULL, NULL); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void ArmorIcon_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_armoricon_t* icon = (guidata_armoricon_t*)obj->typedata; obj->geometry.size.width = 0; @@ -2271,13 +2172,10 @@ void ArmorIcon_UpdateGeometry(uiwidget_t* obj) ST_HUDSpriteSize(icon->sprite, 1, &obj->geometry.size.width, &obj->geometry.size.height); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_keys_t* keys = (guidata_keys_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -2287,14 +2185,12 @@ void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { keys->keyBoxes[i] = plr->keys[i]; } - } } -void Keys_Drawer(uiwidget_t* obj, int x, int y) +void Keys_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define EXTRA_SCALE .75f - assert(obj); - { + static int keyPairs[3][2] = { {KT_REDCARD, KT_REDSKULL}, {KT_YELLOWCARD, KT_YELLOWSKULL}, @@ -2311,7 +2207,7 @@ void Keys_Drawer(uiwidget_t* obj, int x, int y) guidata_keys_t* keys = (guidata_keys_t*)obj->typedata; //const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; - int i, numDrawnKeys = 0; + int i, x, numDrawnKeys = 0; if(!cfg.hudShown[HUD_KEYS]) return; if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; @@ -2319,7 +2215,7 @@ void Keys_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(EXTRA_SCALE * cfg.hudScale, EXTRA_SCALE * cfg.hudScale, 1); x = 0; @@ -2353,15 +2249,14 @@ void Keys_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef EXTRA_SCALE } void Keys_UpdateGeometry(uiwidget_t* obj) { #define EXTRA_SCALE .75f - assert(obj); - { + static int keyPairs[3][2] = { {KT_REDCARD, KT_REDSKULL}, {KT_YELLOWCARD, KT_YELLOWSKULL}, @@ -2418,26 +2313,21 @@ void Keys_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = obj->geometry.size.width * EXTRA_SCALE * cfg.hudScale; obj->geometry.size.height = obj->geometry.size.height * EXTRA_SCALE * cfg.hudScale; - } + #undef EXTRA_SCALE } void Kills_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; kills->value = plr->killCount; - } } -void Kills_Drawer(uiwidget_t* obj, int x, int y) +void Kills_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; char buf[40], tmp[20]; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; @@ -2463,7 +2353,7 @@ void Kills_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2474,13 +2364,10 @@ void Kills_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Kills_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; char buf[40], tmp[20]; @@ -2510,25 +2397,19 @@ void Kills_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } void Items_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; items->value = plr->itemCount; - } } -void Items_Drawer(uiwidget_t* obj, int x, int y) +void Items_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[40], tmp[20]; @@ -2554,7 +2435,7 @@ void Items_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2565,13 +2446,10 @@ void Items_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Items_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; char buf[40], tmp[20]; @@ -2601,13 +2479,10 @@ void Items_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } -void Secrets_Drawer(uiwidget_t* obj, int x, int y) +void Secrets_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[40], tmp[20]; @@ -2633,7 +2508,7 @@ void Secrets_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2644,25 +2519,19 @@ void Secrets_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Secrets_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; scrt->value = plr->secretCount; - } } void Secrets_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; char buf[40], tmp[20]; @@ -2692,23 +2561,21 @@ void Secrets_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } -void MapName_Drawer(uiwidget_t* obj, int x, int y) +void MapName_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj && obj->type == GUI_MAPNAME); - { const float scale = .75f; const float textAlpha = uiRendState->pageAlpha; const patchid_t patch = P_FindMapTitlePatch(gameEpisode, gameMap); const char* text = Hu_ChoosePatchReplacement2(PRM_ALLOW_TEXT, patch, P_GetMapNiceName()); + assert(obj->type == GUI_MAPNAME); if(!text && 0 == patch) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(scale, scale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2721,7 +2588,6 @@ void MapName_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void MapName_UpdateGeometry(uiwidget_t* obj) @@ -2756,7 +2622,7 @@ typedef struct { int group; gamefontid_t fontIdx; void (*updateGeometry) (uiwidget_t* obj); - void (*drawer) (uiwidget_t* obj, int x, int y); + void (*drawer) (uiwidget_t* obj, const Point2Raw* origin); void (*ticker) (uiwidget_t* obj, timespan_t ticLength); void* typedata; } uiwidgetdef_t; diff --git a/doomsday/plugins/jheretic/src/st_stuff.c b/doomsday/plugins/jheretic/src/st_stuff.c index ed8ee2d47d..3e2c248d58 100644 --- a/doomsday/plugins/jheretic/src/st_stuff.c +++ b/doomsday/plugins/jheretic/src/st_stuff.c @@ -322,13 +322,11 @@ void SBarChain_Ticker(uiwidget_t* obj, timespan_t ticLength) } } -void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarChain_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (0) - assert(obj); - { static int theirColors[] = { 144, // Green. 197, // Yellow. @@ -371,7 +369,7 @@ void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, chainYOffset, 0); @@ -442,7 +440,7 @@ void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINX #undef ORIGINY } @@ -467,15 +465,13 @@ void SBarChain_UpdateGeometry(uiwidget_t* obj) * \todo There is a whole lot of constants in here. What if someone wants to * replace the statusbar with new patches? */ -void SBarBackground_Drawer(uiwidget_t* obj, int x, int y) +void SBarBackground_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define WIDTH (ST_WIDTH) #define HEIGHT (ST_HEIGHT) #define ORIGINX ((int)(-WIDTH/2)) #define ORIGINY ((int)(-HEIGHT * hud->showBar)) - assert(obj); - { const hudstate_t* hud = &hudStates[obj->player]; int fullscreen = fullscreenMode(); //const float textAlpha = (fullscreen == 0? 1 : uiRendState->pageAlpha * cfg.statusbarOpacity); @@ -486,7 +482,7 @@ void SBarBackground_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); if(!(iconAlpha < 1)) @@ -572,7 +568,7 @@ void SBarBackground_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef WIDTH #undef HEIGHT #undef ORIGINX @@ -728,33 +724,27 @@ void ST_doPaletteStuff(int player) plr->plr->flags &= ~DDPF_VIEW_FILTER; } -void SBarInventory_Drawer(uiwidget_t* obj, int x, int y) +void SBarInventory_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); int fullscreen = fullscreenMode(); //const float textAlpha = (fullscreen == 0? 1 : uiRendState->pageAlpha * cfg.statusbarCounterAlpha); const float iconAlpha = (fullscreen == 0? 1 : uiRendState->pageAlpha * cfg.statusbarCounterAlpha); - if(!Hu_InventoryIsOpen(obj->player)) - return; - if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) - return; - if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) - return; + if(!Hu_InventoryIsOpen(obj->player)) return; + if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; + if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); Hu_InventoryDraw2(obj->player, -ST_WIDTH/2 + ST_INVENTORYX, -ST_HEIGHT + yOffset + ST_INVENTORYY, iconAlpha); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void SBarInventory_UpdateGeometry(uiwidget_t* obj) @@ -775,8 +765,6 @@ void SBarInventory_UpdateGeometry(uiwidget_t* obj) void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -789,10 +777,9 @@ void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) if(players[i].plr->inGame) frags->value += plr->frags[i] * (i != obj->player ? 1 : -1); } - } } -void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) +void SBarFrags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -801,8 +788,6 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_FRAGSWIDTH) #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int fullscreen = fullscreenMode(); @@ -819,7 +804,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -832,7 +817,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -844,8 +829,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) void SBarFrags_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { + guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -863,22 +847,20 @@ void SBarFrags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void Health_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; hlth->value = plr->health; - } } -void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) +void SBarHealth_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -887,8 +869,6 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_HEALTHWIDTH) #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -896,20 +876,16 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) const float textAlpha = (fullscreen == 0? 1 : uiRendState->pageAlpha * cfg.statusbarCounterAlpha); char buf[20]; - if(deathmatch || Hu_InventoryIsOpen(obj->player)) - return; - if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) - return; - if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) - return; - if(hlth->value == 1994) - return; + if(deathmatch || Hu_InventoryIsOpen(obj->player)) return; + if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; + if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) return; + if(hlth->value == 1994) return; dd_snprintf(buf, 20, "%i", hlth->value); DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -922,7 +898,7 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -935,8 +911,6 @@ void SBarHealth_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; char buf[20]; @@ -954,22 +928,19 @@ void SBarHealth_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } #undef TRACKING } void Armor_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; armor->value = plr->armorPoints; - } } -void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) +void SBarArmor_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -978,8 +949,6 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_ARMORWIDTH) #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -997,7 +966,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1010,7 +979,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -1023,8 +992,6 @@ void SBarArmor_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; char buf[20]; @@ -1042,28 +1009,24 @@ void SBarArmor_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void KeySlot_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_keyslot_t* kslt = (guidata_keyslot_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; kslt->patchId = plr->keys[kslt->keytypeA] ? pKeys[kslt->keytypeA] : 0; - } } -void KeySlot_Drawer(uiwidget_t* obj, int x, int y) +void KeySlot_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) - assert(obj); - { static const Point2Raw elements[] = { { ORIGINX+ST_KEY0X, ORIGINY+ST_KEY0Y }, { ORIGINX+ST_KEY1X, ORIGINY+ST_KEY1Y }, @@ -1083,7 +1046,7 @@ void KeySlot_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1094,15 +1057,13 @@ void KeySlot_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINY #undef ORIGINX } void KeySlot_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_keyslot_t* kslt = (guidata_keyslot_t*)obj->typedata; patchinfo_t info; @@ -1116,18 +1077,17 @@ void KeySlot_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = info.geometry.size.width * cfg.statusbarScale; obj->geometry.size.height = info.geometry.size.height * cfg.statusbarScale; - } } void ReadyAmmo_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; const player_t* plr = &players[obj->player]; int lvl = (plr->powers[PT_WEAPONLEVEL2]? 1 : 0); ammotype_t ammoType; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; + ammo->value = 1994; // Means n/a. if(!(plr->readyWeapon > 0 && plr->readyWeapon < 7)) return; @@ -1138,10 +1098,9 @@ void ReadyAmmo_Ticker(uiwidget_t* obj, timespan_t ticLength) ammo->value = plr->ammo[ammoType].owned; break; } - } } -void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) +void SBarReadyAmmo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1150,8 +1109,6 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_AMMOWIDTH) #define TRACKING (1) - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1169,7 +1126,7 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1182,7 +1139,7 @@ void SBarReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -1195,8 +1152,6 @@ void SBarReadyAmmo_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; char buf[20]; @@ -1214,18 +1169,17 @@ void SBarReadyAmmo_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void ReadyAmmoIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; const player_t* plr = &players[obj->player]; int lvl = (plr->powers[PT_WEAPONLEVEL2]? 1 : 0); ammotype_t ammoType; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; icon->patchId = 0; if(!(plr->readyWeapon > 0 && plr->readyWeapon < 7)) return; @@ -1237,18 +1191,15 @@ void ReadyAmmoIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) icon->patchId = pAmmoIcons[ammoType]; break; } - } } -void SBarReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) +void SBarReadyAmmoIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_AMMOICONX) #define Y (ORIGINY+ST_AMMOICONY) - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1263,7 +1214,7 @@ void SBarReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1274,7 +1225,7 @@ void SBarReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef Y #undef X #undef ORIGINY @@ -1283,8 +1234,6 @@ void SBarReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) void SBarReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; patchinfo_t info; @@ -1299,13 +1248,10 @@ void SBarReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = info.geometry.size.width * cfg.statusbarScale; obj->geometry.size.height = info.geometry.size.height * cfg.statusbarScale; - } } void ReadyItem_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -1327,17 +1273,14 @@ void ReadyItem_Ticker(uiwidget_t* obj, timespan_t ticLength) item->patchId = 0; } } - } } -void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarReadyItem_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT*hud->showBar) #define TRACKING (2) - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int fullscreen = fullscreenMode(); @@ -1366,7 +1309,7 @@ void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1393,7 +1336,7 @@ void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } + #undef TRACKING #undef ORIGINY #undef ORIGINX @@ -1401,8 +1344,6 @@ void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) void SBarReadyItem_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; patchinfo_t info; @@ -1418,7 +1359,6 @@ void SBarReadyItem_UpdateGeometry(uiwidget_t* obj) // \fixme Calculate dimensions properly! obj->geometry.size.width = info.geometry.size.width * cfg.statusbarScale; obj->geometry.size.height = info.geometry.size.height * cfg.statusbarScale; - } } void ST_FlashCurrentItem(int player) @@ -1498,16 +1438,12 @@ void Flight_Ticker(uiwidget_t* obj, timespan_t ticLength) } } -void Flight_Drawer(uiwidget_t* obj, int x, int y) +void Flight_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_flight_t* flht = (guidata_flight_t*)obj->typedata; - if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) - return; - if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) - return; + if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; + if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) return; if(0 != flht->patchId) { @@ -1515,7 +1451,7 @@ void Flight_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1526,13 +1462,10 @@ void Flight_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } } void Flight_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_flight_t* flht = (guidata_flight_t*)obj->typedata; obj->geometry.size.width = 0; @@ -1545,13 +1478,10 @@ void Flight_UpdateGeometry(uiwidget_t* obj) /// \fixme Calculate dimensions properly! obj->geometry.size.width = 32 * cfg.hudScale; obj->geometry.size.height = 32 * cfg.hudScale; - } } void Tome_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_tomeofpower_t* tome = (guidata_tomeofpower_t*)obj->typedata; const player_t* plr = &players[obj->player]; const int ticsRemain = plr->powers[PT_WEAPONLEVEL2]; @@ -1585,13 +1515,10 @@ void Tome_Ticker(uiwidget_t* obj, timespan_t ticLength) { tome->countdownSeconds = 1 + ticsRemain / TICSPERSEC; } - } } -void Tome_Drawer(uiwidget_t* obj, int x, int y) +void Tome_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_tomeofpower_t* tome = (guidata_tomeofpower_t*)obj->typedata; if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; @@ -1600,7 +1527,7 @@ void Tome_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); if(tome->patchId != 0) @@ -1643,13 +1570,10 @@ void Tome_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Tome_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_tomeofpower_t* tome = (guidata_tomeofpower_t*)obj->typedata; obj->geometry.size.width = 0; @@ -1685,7 +1609,6 @@ void Tome_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } } /* @@ -1738,10 +1661,8 @@ static void old_drawStatusbar(int player, int x, int y, int viewW, int viewH) } */ -void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) +void ReadyAmmoIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -1752,7 +1673,7 @@ void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1762,13 +1683,10 @@ void ReadyAmmoIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void ReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyammoicon_t* icon = (guidata_readyammoicon_t*)obj->typedata; patchinfo_t info; @@ -1783,15 +1701,12 @@ void ReadyAmmoIcon_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = info.geometry.size.width * cfg.hudScale; obj->geometry.size.height = info.geometry.size.height * cfg.hudScale; - } } -void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) +void ReadyAmmo_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -1805,7 +1720,7 @@ void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1817,7 +1732,7 @@ void ReadyAmmo_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -1825,8 +1740,6 @@ void ReadyAmmo_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_readyammo_t* ammo = (guidata_readyammo_t*)obj->typedata; char buf[20]; @@ -1844,16 +1757,14 @@ void ReadyAmmo_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void Health_Drawer(uiwidget_t* obj, int x, int y) +void Health_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; int health = MAX_OF(hlth->value, 0); const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; @@ -1865,7 +1776,7 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); dd_snprintf(buf, 5, "%i", health); @@ -1883,7 +1794,7 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -1891,8 +1802,6 @@ void Health_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; int health = MAX_OF(hlth->value, 0); char buf[20]; @@ -1910,16 +1819,14 @@ void Health_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void Armor_Drawer(uiwidget_t* obj, int x, int y) +void Armor_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -1933,7 +1840,7 @@ void Armor_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -1945,7 +1852,7 @@ void Armor_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -1953,8 +1860,6 @@ void Armor_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; char buf[20]; @@ -1972,11 +1877,11 @@ void Armor_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void Keys_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void Keys_Drawer(uiwidget_t* obj, const Point2Raw* origin) { guidata_keys_t* keys = (guidata_keys_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -1989,7 +1894,7 @@ void Keys_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); if(keys->keyBoxes[KT_YELLOW]) @@ -2028,8 +1933,6 @@ void Keys_Drawer(uiwidget_t* obj, int xOffset, int yOffset) void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_keys_t* keys = (guidata_keys_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -2040,7 +1943,6 @@ void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { keys->keyBoxes[i] = plr->keys[i] ? true : false; } - } } void Keys_UpdateGeometry(uiwidget_t* obj) @@ -2088,12 +1990,10 @@ void Keys_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.height *= cfg.hudScale; } -void Frags_Drawer(uiwidget_t* obj, int x, int y) +void Frags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -2107,7 +2007,7 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2119,7 +2019,7 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -2127,8 +2027,6 @@ void Frags_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -2147,15 +2045,14 @@ void Frags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) +void ReadyItem_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (2) - assert(obj); - { + guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2170,7 +2067,7 @@ void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); if(item->patchId != 0) @@ -2209,14 +2106,12 @@ void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } void ReadyItem_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { patchinfo_t boxInfo; obj->geometry.size.width = 0; @@ -2230,16 +2125,13 @@ void ReadyItem_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = boxInfo.geometry.size.width * cfg.hudScale; obj->geometry.size.height = boxInfo.geometry.size.height * cfg.hudScale; - } } -void Inventory_Drawer(uiwidget_t* obj, int x, int y) +void Inventory_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define INVENTORY_HEIGHT 29 #define EXTRA_SCALE .75f - assert(obj); - { const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2249,14 +2141,14 @@ void Inventory_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(EXTRA_SCALE * cfg.hudScale, EXTRA_SCALE * cfg.hudScale, 1); Hu_InventoryDraw(obj->player, 0, -INVENTORY_HEIGHT, textAlpha, iconAlpha); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef EXTRA_SCALE #undef INVENTORY_HEIGHT } @@ -2285,20 +2177,15 @@ void Inventory_UpdateGeometry(uiwidget_t* obj) void Kills_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; kills->value = plr->killCount; - } } -void Kills_Drawer(uiwidget_t* obj, int x, int y) +void Kills_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[40], tmp[20]; @@ -2322,7 +2209,7 @@ void Kills_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2333,13 +2220,10 @@ void Kills_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Kills_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_kills_t* kills = (guidata_kills_t*)obj->typedata; char buf[40], tmp[20]; @@ -2367,25 +2251,19 @@ void Kills_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } void Items_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; items->value = plr->itemCount; - } } -void Items_Drawer(uiwidget_t* obj, int x, int y) +void Items_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[40], tmp[20]; @@ -2409,7 +2287,7 @@ void Items_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2420,13 +2298,10 @@ void Items_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Items_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_items_t* items = (guidata_items_t*)obj->typedata; char buf[40], tmp[20]; @@ -2454,25 +2329,19 @@ void Items_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } void Secrets_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; scrt->value = plr->secretCount; - } } -void Secrets_Drawer(uiwidget_t* obj, int x, int y) +void Secrets_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[40], tmp[20]; @@ -2496,7 +2365,7 @@ void Secrets_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudCheatCounterScale, cfg.hudCheatCounterScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2507,13 +2376,10 @@ void Secrets_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Secrets_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_secrets_t* scrt = (guidata_secrets_t*)obj->typedata; char buf[40], tmp[20]; @@ -2541,22 +2407,20 @@ void Secrets_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudCheatCounterScale; obj->geometry.size.height *= cfg.hudCheatCounterScale; - } } -void MapName_Drawer(uiwidget_t* obj, int x, int y) +void MapName_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj && obj->type == GUI_MAPNAME); - { const float scale = .75f; const float textAlpha = uiRendState->pageAlpha; const char* text = P_GetMapNiceName(); + assert(obj->type == GUI_MAPNAME); if(!text) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(scale, scale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2567,15 +2431,13 @@ void MapName_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void MapName_UpdateGeometry(uiwidget_t* obj) { - assert(obj && obj->type == GUI_MAPNAME); - { const char* text = P_GetMapNiceName(); const float scale = .75f; + assert(obj->type == GUI_MAPNAME); obj->geometry.size.width = 0; obj->geometry.size.height = 0; @@ -2586,7 +2448,6 @@ void MapName_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, text); obj->geometry.size.width *= scale; obj->geometry.size.height *= scale; - } } typedef struct { @@ -2594,7 +2455,7 @@ typedef struct { int group; gamefontid_t fontIdx; void (*updateGeometry) (uiwidget_t* obj); - void (*drawer) (uiwidget_t* obj, int x, int y); + void (*drawer) (uiwidget_t* obj, const Point2Raw* origin); void (*ticker) (uiwidget_t* obj, timespan_t ticLength); void* typedata; } uiwidgetdef_t; diff --git a/doomsday/plugins/jhexen/src/st_stuff.c b/doomsday/plugins/jhexen/src/st_stuff.c index d15354de23..c1e06600ad 100644 --- a/doomsday/plugins/jhexen/src/st_stuff.c +++ b/doomsday/plugins/jhexen/src/st_stuff.c @@ -280,17 +280,13 @@ static int fullscreenMode(void) void Flight_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_flight_t* flht = (guidata_flight_t*)obj->typedata; const player_t* plr = &players[obj->player]; - if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) - return; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; flht->patchId = 0; - if(!plr->powers[PT_FLIGHT]) - return; + if(!plr->powers[PT_FLIGHT]) return; if(plr->powers[PT_FLIGHT] > BLINKTHRESHOLD || !(plr->powers[PT_FLIGHT] & 16)) { @@ -316,26 +312,21 @@ void Flight_Ticker(uiwidget_t* obj, timespan_t ticLength) } flht->patchId = pSpinFly[frame]; } - } } -void Flight_Drawer(uiwidget_t* obj, int x, int y) +void Flight_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_flight_t* flht = (guidata_flight_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; - if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) - return; - if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) - return; + if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; + if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) return; if(flht->patchId != 0) { DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -346,13 +337,10 @@ void Flight_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } } void Flight_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_flight_t* flht = (guidata_flight_t*)obj->typedata; obj->geometry.size.width = 0; @@ -364,13 +352,10 @@ void Flight_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = 32 * cfg.hudScale; obj->geometry.size.height = 28 * cfg.hudScale; - } } void Boots_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_boots_t* boots = (guidata_boots_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -381,13 +366,10 @@ void Boots_Ticker(uiwidget_t* obj, timespan_t ticLength) { boots->patchId = pSpinSpeed[(mapTime / 3) & 15]; } - } } -void Boots_Drawer(uiwidget_t* obj, int x, int y) +void Boots_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_boots_t* boots = (guidata_boots_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -397,7 +379,7 @@ void Boots_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -407,13 +389,10 @@ void Boots_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Boots_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_boots_t* boots = (guidata_boots_t*)obj->typedata; obj->geometry.size.width = 0; @@ -425,13 +404,10 @@ void Boots_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = 24 * cfg.hudScale; obj->geometry.size.height = 28 * cfg.hudScale; - } } void Defense_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_defense_t* dfns = (guidata_defense_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -442,13 +418,10 @@ void Defense_Ticker(uiwidget_t* obj, timespan_t ticLength) { dfns->patchId = pSpinDefense[(mapTime / 3) & 15]; } - } } -void Defense_Drawer(uiwidget_t* obj, int x, int y) +void Defense_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_defense_t* dfns = (guidata_defense_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -458,7 +431,7 @@ void Defense_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -468,13 +441,10 @@ void Defense_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Defense_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_defense_t* dfns = (guidata_defense_t*)obj->typedata; obj->geometry.size.width = 0; @@ -486,16 +456,15 @@ void Defense_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = 26 * cfg.hudScale; obj->geometry.size.height = 28 * cfg.hudScale; - } } void Servant_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_servant_t* svnt = (guidata_servant_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; + svnt->patchId = 0; if(!plr->powers[PT_MINOTAUR]) return; @@ -503,13 +472,10 @@ void Servant_Ticker(uiwidget_t* obj, timespan_t ticLength) { svnt->patchId = pSpinMinotaur[(mapTime / 3) & 15]; } - } } -void Servant_Drawer(uiwidget_t* obj, int x, int y) +void Servant_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_servant_t* svnt = (guidata_servant_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -519,7 +485,7 @@ void Servant_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -529,13 +495,10 @@ void Servant_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void Servant_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_servant_t* svnt = (guidata_servant_t*)obj->typedata; obj->geometry.size.width = 0; @@ -547,28 +510,22 @@ void Servant_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = 26 * cfg.hudScale; obj->geometry.size.height = 29 * cfg.hudScale; - } } void WeaponPieces_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_weaponpieces_t* wpn = (guidata_weaponpieces_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; wpn->pieces = plr->pieces; - } } -void SBarWeaponPieces_Drawer(uiwidget_t* obj, int x, int y) +void SBarWeaponPieces_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT*hud->showBar) - assert(obj); - { guidata_weaponpieces_t* wpn = (guidata_weaponpieces_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int pClass = cfg.playerClass[obj->player]; // Original player class (i.e. not pig). @@ -581,7 +538,7 @@ void SBarWeaponPieces_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -614,15 +571,13 @@ void SBarWeaponPieces_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINX #undef ORIGINY } void SBarWeaponPieces_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { //guidata_weaponpieces_t* wpn = (guidata_weaponpieces_t*)obj->typedata; obj->geometry.size.width = 0; @@ -634,13 +589,10 @@ void SBarWeaponPieces_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = 57 * cfg.statusbarScale; obj->geometry.size.height = 30 * cfg.statusbarScale; - } } void SBarChain_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_chain_t* chain = (guidata_chain_t*)obj->typedata; const player_t* plr = &players[obj->player]; // Health marker chain animates up to the actual health value. @@ -657,16 +609,13 @@ void SBarChain_Ticker(uiwidget_t* obj, timespan_t ticLength) delta = MINMAX_OF(1, (curHealth - chain->healthMarker) >> 2, 6); chain->healthMarker += delta; } - } } -void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarChain_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (0) - assert(obj); - { static int theirColors[] = { 157, // Blue 177, // Red @@ -726,7 +675,7 @@ void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, chainYOffset, 0); @@ -822,7 +771,7 @@ void SBarChain_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINX #undef ORIGINY } @@ -846,29 +795,25 @@ void SBarChain_UpdateGeometry(uiwidget_t* obj) * \todo There is a whole lot of constants in here. What if someone wants to * replace the statusbar with new patches? */ -void SBarBackground_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarBackground_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define WIDTH (ST_WIDTH) #define HEIGHT (ST_HEIGHT) #define ORIGINX ((int)(-WIDTH/2)) #define ORIGINY ((int)(-HEIGHT * hud->showBar)) - assert(obj); - { const hudstate_t* hud = &hudStates[obj->player]; int x, y, w, h, pClass = cfg.playerClass[obj->player]; // Original class (i.e. not pig). int fullscreen = fullscreenMode(); const float iconAlpha = (fullscreen == 0? 1 : uiRendState->pageAlpha * cfg.statusbarOpacity); float cw, ch; - if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) - return; - if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) - return; + if(ST_AutomapIsActive(obj->player) && cfg.automapHudDisplay == 0) return; + if(P_MobjIsCamera(players[obj->player].plr->mo) && Get(DD_PLAYBACK)) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); if(!(iconAlpha < 1)) @@ -1052,7 +997,7 @@ void SBarBackground_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef WIDTH #undef HEIGHT #undef ORIGINX @@ -1079,10 +1024,8 @@ void SBarBackground_UpdateGeometry(uiwidget_t* obj) #undef WIDTH } -void SBarInventory_Drawer(uiwidget_t* obj, int x, int y) +void SBarInventory_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); int fullscreen = fullscreenMode(); @@ -1095,14 +1038,13 @@ void SBarInventory_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); Hu_InventoryDraw2(obj->player, -ST_WIDTH/2 + ST_INVENTORYX, -ST_HEIGHT + yOffset + ST_INVENTORYY, iconAlpha); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void SBarInventory_UpdateGeometry(uiwidget_t* obj) @@ -1123,8 +1065,6 @@ void SBarInventory_UpdateGeometry(uiwidget_t* obj) void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_keys_t* keys = (guidata_keys_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -1134,10 +1074,9 @@ void Keys_Ticker(uiwidget_t* obj, timespan_t ticLength) { keys->keyBoxes[i] = (plr->keys & (1 << i)); } - } } -void SBarKeys_Drawer(uiwidget_t* obj, int x, int y) +void SBarKeys_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT*hud->showBar) @@ -1154,7 +1093,7 @@ void SBarKeys_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); numDrawn = 0; @@ -1220,26 +1159,22 @@ void SBarKeys_UpdateGeometry(uiwidget_t* obj) void ArmorIcons_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_armoricons_t* icons = (guidata_armoricons_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; for(i = 0; i < NUMARMOR; ++i) { icons->types[i].value = plr->armorPoints[i]; } - } } -void SBarArmorIcons_Drawer(uiwidget_t* obj, int x, int y) +void SBarArmorIcons_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT*hud->showBar) - assert(obj); - { guidata_armoricons_t* icons = (guidata_armoricons_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int i, pClass = cfg.playerClass[obj->player]; // Original player class (i.e. not pig). @@ -1252,7 +1187,7 @@ void SBarArmorIcons_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); for(i = 0; i < NUMARMOR; ++i) @@ -1278,7 +1213,7 @@ void SBarArmorIcons_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINX #undef ORIGINY } @@ -1318,8 +1253,6 @@ void SBarArmorIcons_UpdateGeometry(uiwidget_t* obj) void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const player_t* plr = &players[obj->player]; int i; @@ -1332,10 +1265,9 @@ void Frags_Ticker(uiwidget_t* obj, timespan_t ticLength) frags->value += plr->frags[i] * (i != obj->player ? 1 : -1); } - } } -void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) +void SBarFrags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1344,8 +1276,6 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_FRAGSWIDTH) #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1363,7 +1293,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1376,7 +1306,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -1388,8 +1318,7 @@ void SBarFrags_Drawer(uiwidget_t* obj, int x, int y) void SBarFrags_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { + guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -1407,23 +1336,20 @@ void SBarFrags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void Health_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const player_t* plr = &players[obj->player]; - if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; hlth->value = plr->health; - } } -void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) +void SBarHealth_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1432,8 +1358,6 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_HEALTHWIDTH) #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1451,7 +1375,7 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1464,7 +1388,7 @@ void SBarHealth_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -1477,8 +1401,6 @@ void SBarHealth_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; char buf[20]; @@ -1496,14 +1418,12 @@ void SBarHealth_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void SBarArmor_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const player_t* plr = &players[obj->player]; int pClass = cfg.playerClass[obj->player]; // Original player class (i.e. not pig). @@ -1514,10 +1434,9 @@ void SBarArmor_Ticker(uiwidget_t* obj, timespan_t ticLength) plr->armorPoints[ARMOR_SHIELD] + plr->armorPoints[ARMOR_HELMET] + plr->armorPoints[ARMOR_AMULET], 5 * FRACUNIT) >> FRACBITS; - } } -void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) +void SBarArmor_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1526,8 +1445,6 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) #define MAXDIGITS (ST_ARMORWIDTH) #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1544,7 +1461,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1557,7 +1474,7 @@ void SBarArmor_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING #undef MAXDIGITS #undef Y @@ -1570,8 +1487,6 @@ void SBarArmor_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_armor_t* armor = (guidata_armor_t*)obj->typedata; char buf[20]; @@ -1589,23 +1504,20 @@ void SBarArmor_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } + #undef TRACKING } void BlueMana_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_bluemana_t* mana = (guidata_bluemana_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; mana->value = plr->ammo[AT_BLUEMANA].owned; - } } -void SBarBlueMana_Drawer(uiwidget_t* obj, int x, int y) +void SBarBlueMana_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1613,8 +1525,6 @@ void SBarBlueMana_Drawer(uiwidget_t* obj, int x, int y) #define Y (ORIGINY+ST_MANAAY) #define MAXDIGITS (ST_MANAAWIDTH) - assert(obj); - { guidata_bluemana_t* mana = (guidata_bluemana_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1631,7 +1541,7 @@ void SBarBlueMana_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1643,7 +1553,7 @@ void SBarBlueMana_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef MAXDIGITS #undef Y #undef X @@ -1653,8 +1563,6 @@ void SBarBlueMana_Drawer(uiwidget_t* obj, int x, int y) void SBarBlueMana_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_bluemana_t* mana = (guidata_bluemana_t*)obj->typedata; char buf[20]; @@ -1671,21 +1579,19 @@ void SBarBlueMana_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } } void GreenMana_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_greenmana_t* mana = (guidata_greenmana_t*)obj->typedata; const player_t* plr = &players[obj->player]; + if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; + mana->value = plr->ammo[AT_GREENMANA].owned; - } } -void SBarGreenMana_Drawer(uiwidget_t* obj, int x, int y) +void SBarGreenMana_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) @@ -1693,8 +1599,6 @@ void SBarGreenMana_Drawer(uiwidget_t* obj, int x, int y) #define Y (ORIGINY+ST_MANABY) #define MAXDIGITS (ST_MANABWIDTH) - assert(obj); - { guidata_greenmana_t* mana = (guidata_greenmana_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1711,7 +1615,7 @@ void SBarGreenMana_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1723,7 +1627,7 @@ void SBarGreenMana_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef MAXDIGITS #undef Y #undef X @@ -1733,8 +1637,6 @@ void SBarGreenMana_Drawer(uiwidget_t* obj, int x, int y) void SBarGreenMana_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_greenmana_t* mana = (guidata_greenmana_t*)obj->typedata; char buf[20]; @@ -1751,13 +1653,10 @@ void SBarGreenMana_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.statusbarScale; obj->geometry.size.height *= cfg.statusbarScale; - } } void ReadyItem_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -1779,16 +1678,13 @@ void ReadyItem_Ticker(uiwidget_t* obj, timespan_t ticLength) item->patchId = 0; } } - } } -void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void SBarReadyItem_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1807,7 +1703,7 @@ void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); @@ -1844,15 +1740,13 @@ void SBarReadyItem_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef ORIGINY #undef ORIGINX } void SBarReadyItem_UpdateGeometry(uiwidget_t* obj) { - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; patchinfo_t boxInfo; @@ -1867,13 +1761,10 @@ void SBarReadyItem_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = boxInfo.geometry.size.width * cfg.statusbarScale; obj->geometry.size.height = boxInfo.geometry.size.height * cfg.statusbarScale; - } } void BlueManaIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_bluemanaicon_t* icon = (guidata_bluemanaicon_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -1906,18 +1797,15 @@ void BlueManaIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) icon->iconIdx = 1; } } - } } -void SBarBlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) +void SBarBlueManaIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_MANAAICONX) #define Y (ORIGINY+ST_MANAAICONY) - assert(obj); - { guidata_bluemanaicon_t* icon = (guidata_bluemanaicon_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -1933,7 +1821,7 @@ void SBarBlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) { DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -1945,7 +1833,7 @@ void SBarBlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } + #undef Y #undef X #undef ORIGINY @@ -1971,8 +1859,6 @@ void SBarBlueManaIcon_UpdateGeometry(uiwidget_t* obj) void GreenManaIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_greenmanaicon_t* icon = (guidata_greenmanaicon_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -2004,18 +1890,15 @@ void GreenManaIcon_Ticker(uiwidget_t* obj, timespan_t ticLength) icon->iconIdx = 1; } } - } } -void SBarGreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) +void SBarGreenManaIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (-ST_HEIGHT) #define X (ORIGINX+ST_MANABICONX) #define Y (ORIGINY+ST_MANABICONY) - assert(obj); - { guidata_greenmanaicon_t* icon = (guidata_greenmanaicon_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int yOffset = ST_HEIGHT*(1-hud->showBar); @@ -2030,7 +1913,7 @@ void SBarGreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) { DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, yOffset, 0); DGL_Enable(DGL_TEXTURE_2D); @@ -2042,7 +1925,7 @@ void SBarGreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } + #undef Y #undef X #undef ORIGINY @@ -2068,8 +1951,6 @@ void SBarGreenManaIcon_UpdateGeometry(uiwidget_t* obj) void BlueManaVial_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_bluemanavial_t* vial = (guidata_bluemanavial_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -2093,10 +1974,9 @@ void BlueManaVial_Ticker(uiwidget_t* obj, timespan_t ticLength) } vial->filled = (float)plr->ammo[AT_BLUEMANA].owned / MAX_MANA; - } } -void SBarBlueManaVial_Drawer(uiwidget_t* obj, int x, int y) +void SBarBlueManaVial_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (ST_HEIGHT*(1-hud->showBar)) @@ -2104,8 +1984,6 @@ void SBarBlueManaVial_Drawer(uiwidget_t* obj, int x, int y) #define Y (ORIGINY+ST_MANAAVIALY) #define VIALHEIGHT (22) - assert(obj); - { guidata_bluemanavial_t* vial = (guidata_bluemanavial_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int fullscreen = fullscreenMode(); @@ -2117,7 +1995,7 @@ void SBarBlueManaVial_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, ORIGINY, 0); @@ -2134,7 +2012,7 @@ void SBarBlueManaVial_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef VIALHEIGHT #undef Y #undef X @@ -2161,8 +2039,6 @@ void SBarBlueManaVial_UpdateGeometry(uiwidget_t* obj) void GreenManaVial_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_greenmanavial_t* vial = (guidata_greenmanavial_t*)obj->typedata; const player_t* plr = &players[obj->player]; if(P_IsPaused() || !GUI_GameTicTriggerIsSharp()) return; @@ -2187,10 +2063,9 @@ void GreenManaVial_Ticker(uiwidget_t* obj, timespan_t ticLength) } vial->filled = (float)plr->ammo[AT_GREENMANA].owned / MAX_MANA; - } } -void SBarGreenManaVial_Drawer(uiwidget_t* obj, int x, int y) +void SBarGreenManaVial_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (-ST_WIDTH/2) #define ORIGINY (ST_HEIGHT*(1-hud->showBar)) @@ -2198,8 +2073,6 @@ void SBarGreenManaVial_Drawer(uiwidget_t* obj, int x, int y) #define Y (ORIGINY+ST_MANABVIALY) #define VIALHEIGHT (22) - assert(obj); - { guidata_greenmanavial_t* vial = (guidata_greenmanavial_t*)obj->typedata; const hudstate_t* hud = &hudStates[obj->player]; int fullscreen = fullscreenMode(); @@ -2211,7 +2084,7 @@ void SBarGreenManaVial_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.statusbarScale, cfg.statusbarScale, 1); DGL_Translatef(0, ORIGINY, 0); @@ -2228,7 +2101,7 @@ void SBarGreenManaVial_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef VIALHEIGHT #undef Y #undef X @@ -2261,14 +2134,12 @@ void SBarGreenManaVial_UpdateGeometry(uiwidget_t* obj) */ void ST_HUDUnHide(int player, hueevent_t ev) { - player_t* plr; + player_t* plr; - if(ev < HUE_FORCE || ev > NUMHUDUNHIDEEVENTS) - return; + if(ev < HUE_FORCE || ev > NUMHUDUNHIDEEVENTS) return; plr = &players[player]; - if(!(plr->plr->inGame && (plr->plr->flags & DDPF_LOCAL))) - return; + if(!(plr->plr->inGame && (plr->plr->flags & DDPF_LOCAL))) return; if(ev == HUE_FORCE || cfg.hudUnHide[ev]) { @@ -2277,12 +2148,10 @@ void ST_HUDUnHide(int player, hueevent_t ev) } } -void Health_Drawer(uiwidget_t* obj, int x, int y) +void Health_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; int value = MAX_OF(hlth->value, 0); const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; @@ -2297,7 +2166,7 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2309,7 +2178,6 @@ void Health_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } #undef TRACKING } @@ -2318,8 +2186,6 @@ void Health_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_health_t* hlth = (guidata_health_t*)obj->typedata; int value = MAX_OF(hlth->value, 0); char buf[20]; @@ -2338,15 +2204,12 @@ void Health_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } #undef TRACKING } -void BlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) +void BlueManaIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_bluemanaicon_t* icon = (guidata_bluemanaicon_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2358,7 +2221,7 @@ void BlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) { DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); DGL_Color4f(1, 1, 1, iconAlpha); @@ -2369,7 +2232,6 @@ void BlueManaIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } } void BlueManaIcon_UpdateGeometry(uiwidget_t* obj) @@ -2390,12 +2252,10 @@ void BlueManaIcon_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.height = pInfo.geometry.size.height * cfg.hudScale; } -void BlueMana_Drawer(uiwidget_t* obj, int x, int y) +void BlueMana_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_bluemana_t* mana = (guidata_bluemana_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -2409,7 +2269,7 @@ void BlueMana_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2421,7 +2281,7 @@ void BlueMana_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -2429,8 +2289,6 @@ void BlueMana_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_bluemana_t* mana = (guidata_bluemana_t*)obj->typedata; char buf[20]; @@ -2448,14 +2306,12 @@ void BlueMana_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void GreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) +void GreenManaIcon_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_greenmanaicon_t* icon = (guidata_greenmanaicon_t*)obj->typedata; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2467,7 +2323,7 @@ void GreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) { DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); DGL_Color4f(1, 1, 1, iconAlpha); @@ -2478,7 +2334,6 @@ void GreenManaIcon_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); } - } } void GreenManaIcon_UpdateGeometry(uiwidget_t* obj) @@ -2498,12 +2353,10 @@ void GreenManaIcon_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.height = pInfo.geometry.size.height * cfg.hudScale; } -void GreenMana_Drawer(uiwidget_t* obj, int x, int y) +void GreenMana_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_greenmana_t* mana = (guidata_greenmana_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -2517,7 +2370,7 @@ void GreenMana_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2529,7 +2382,7 @@ void GreenMana_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef TRACKING } @@ -2537,8 +2390,6 @@ void GreenMana_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_greenmana_t* mana = (guidata_greenmana_t*)obj->typedata; char buf[20]; @@ -2557,16 +2408,14 @@ void GreenMana_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } + #undef TRACKING } -void Frags_Drawer(uiwidget_t* obj, int x, int y) +void Frags_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; char buf[20]; @@ -2580,7 +2429,7 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2593,7 +2442,6 @@ void Frags_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } #undef TRACKING } @@ -2602,8 +2450,6 @@ void Frags_UpdateGeometry(uiwidget_t* obj) { #define TRACKING (1) - assert(obj); - { guidata_frags_t* frags = (guidata_frags_t*)obj->typedata; char buf[20]; @@ -2621,15 +2467,12 @@ void Frags_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, buf); obj->geometry.size.width *= cfg.hudScale; obj->geometry.size.height *= cfg.hudScale; - } #undef TRACKING } -void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) +void ReadyItem_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj); - { guidata_readyitem_t* item = (guidata_readyitem_t*)obj->typedata; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; const float iconAlpha = uiRendState->pageAlpha * cfg.hudIconAlpha; @@ -2646,7 +2489,7 @@ void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2684,7 +2527,6 @@ void ReadyItem_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void ReadyItem_UpdateGeometry(uiwidget_t* obj) @@ -2705,7 +2547,7 @@ void ReadyItem_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.height = boxInfo.geometry.size.height * cfg.hudScale; } -void Inventory_Drawer(uiwidget_t* obj, int x, int y) +void Inventory_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define INVENTORY_HEIGHT 29 #define EXTRA_SCALE .75f @@ -2720,7 +2562,7 @@ void Inventory_Drawer(uiwidget_t* obj, int x, int y) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(EXTRA_SCALE * cfg.hudScale, EXTRA_SCALE * cfg.hudScale, 1); Hu_InventoryDraw(obj->player, 0, -INVENTORY_HEIGHT, textAlpha, iconAlpha); @@ -2755,8 +2597,6 @@ void Inventory_UpdateGeometry(uiwidget_t* obj) void WorldTimer_Ticker(uiwidget_t* obj, timespan_t ticLength) { - assert(obj); - { guidata_worldtimer_t* time = (guidata_worldtimer_t*)obj->typedata; const player_t* plr = &players[obj->player]; int worldTime = plr->worldTimer / TICRATE; @@ -2766,18 +2606,15 @@ void WorldTimer_Ticker(uiwidget_t* obj, timespan_t ticLength) time->hours = worldTime / 3600; worldTime -= time->hours * 3600; time->minutes = worldTime / 60; worldTime -= time->minutes * 60; time->seconds = worldTime; - } } -void WorldTimer_Drawer(uiwidget_t* obj, int xOffset, int yOffset) +void WorldTimer_Drawer(uiwidget_t* obj, const Point2Raw* origin) { #define ORIGINX (0) #define ORIGINY (0) #define LEADING (.5) #define DRAWFLAGS (DTF_NO_EFFECTS) - assert(obj); - { guidata_worldtimer_t* time = (guidata_worldtimer_t*)obj->typedata; int counterWidth, spacerWidth, lineHeight, x, y; const float textAlpha = uiRendState->pageAlpha * cfg.hudColor[3]; @@ -2793,7 +2630,7 @@ void WorldTimer_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(xOffset, yOffset, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(cfg.hudScale, cfg.hudScale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2837,7 +2674,7 @@ void WorldTimer_Drawer(uiwidget_t* obj, int xOffset, int yOffset) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } + #undef DRAWFLAGS #undef LEADING #undef ORIGINY @@ -2850,8 +2687,6 @@ void WorldTimer_UpdateGeometry(uiwidget_t* obj) #define ORIGINY (0) #define LEADING (.5) - assert(obj); - { guidata_worldtimer_t* time = (guidata_worldtimer_t*)obj->typedata; int counterWidth, spacerWidth, lineHeight, x, y; char buf[20]; @@ -2895,26 +2730,25 @@ void WorldTimer_UpdateGeometry(uiwidget_t* obj) obj->geometry.size.width = (ORIGINX - x) * cfg.hudScale; obj->geometry.size.height = (y - ORIGINY) * cfg.hudScale; - } + #undef DRAWFLAGS #undef LEADING #undef ORIGINY #undef ORIGINX } -void MapName_Drawer(uiwidget_t* obj, int x, int y) +void MapName_Drawer(uiwidget_t* obj, const Point2Raw* origin) { - assert(obj && obj->type == GUI_MAPNAME); - { const float scale = .75f; const float textAlpha = uiRendState->pageAlpha; const char* text = P_GetMapNiceName(); + assert(obj->type == GUI_MAPNAME); if(!text) return; DGL_MatrixMode(DGL_MODELVIEW); DGL_PushMatrix(); - DGL_Translatef(x, y, 0); + DGL_Translatef(origin->x, origin->y, 0); DGL_Scalef(scale, scale, 1); DGL_Enable(DGL_TEXTURE_2D); @@ -2925,15 +2759,13 @@ void MapName_Drawer(uiwidget_t* obj, int x, int y) DGL_Disable(DGL_TEXTURE_2D); DGL_MatrixMode(DGL_MODELVIEW); DGL_PopMatrix(); - } } void MapName_UpdateGeometry(uiwidget_t* obj) { - assert(obj && obj->type == GUI_MAPNAME); - { const char* text = P_GetMapNiceName(); const float scale = .75f; + assert(obj->type == GUI_MAPNAME); obj->geometry.size.width = 0; obj->geometry.size.height = 0; @@ -2944,7 +2776,6 @@ void MapName_UpdateGeometry(uiwidget_t* obj) FR_TextSize(&obj->geometry.size, text); obj->geometry.size.width *= scale; obj->geometry.size.height *= scale; - } } /* @@ -3335,7 +3166,7 @@ typedef struct { int group; gamefontid_t fontIdx; void (*updateGeometry) (uiwidget_t* obj); - void (*drawer) (uiwidget_t* obj, int x, int y); + void (*drawer) (uiwidget_t* obj, const Point2Raw* origin); void (*ticker) (uiwidget_t* obj, timespan_t ticLength); void* typedata; } uiwidgetdef_t;