mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Use FlatSet for sprite picker list.
parent
b06273f716
commit
e23de03a99
|
@ -1162,7 +1162,7 @@ static void GfxBlitter(const Sprite * const sprite, int x, int y, BlitterMode mo
|
|||
if (topleft <= clicked && clicked <= bottomright) {
|
||||
uint offset = (((size_t)clicked - (size_t)topleft) / (blitter->GetScreenDepth() / 8)) % bp.pitch;
|
||||
if (offset < (uint)bp.width) {
|
||||
include(_newgrf_debug_sprite_picker.sprites, sprite_id);
|
||||
_newgrf_debug_sprite_picker.sprites.insert(sprite_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#ifndef NEWGRF_DEBUG_H
|
||||
#define NEWGRF_DEBUG_H
|
||||
|
||||
#include "core/flatset_type.hpp"
|
||||
#include "newgrf.h"
|
||||
#include "tile_type.h"
|
||||
#include "vehicle_type.h"
|
||||
|
@ -25,7 +26,7 @@ enum NewGrfDebugSpritePickerMode : uint8_t {
|
|||
struct NewGrfDebugSpritePicker {
|
||||
NewGrfDebugSpritePickerMode mode; ///< Current state
|
||||
void *clicked_pixel; ///< Clicked pixel (pointer to blitter buffer)
|
||||
std::vector<SpriteID> sprites; ///< Sprites found
|
||||
FlatSet<SpriteID> sprites; ///< Sprites found
|
||||
};
|
||||
|
||||
extern NewGrfDebugSpritePicker _newgrf_debug_sprite_picker;
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
#include "safeguards.h"
|
||||
|
||||
/** The sprite picker. */
|
||||
NewGrfDebugSpritePicker _newgrf_debug_sprite_picker = { SPM_NONE, nullptr, std::vector<SpriteID>() };
|
||||
NewGrfDebugSpritePicker _newgrf_debug_sprite_picker = { SPM_NONE, nullptr, {} };
|
||||
|
||||
/**
|
||||
* Get the feature index related to the window number.
|
||||
|
@ -957,7 +957,7 @@ struct SpriteAlignerWindow : Window {
|
|||
const NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget);
|
||||
int step_size = nwid->resize_y;
|
||||
|
||||
const std::vector<SpriteID> &list = _newgrf_debug_sprite_picker.sprites;
|
||||
const FlatSet<SpriteID> &list = _newgrf_debug_sprite_picker.sprites;
|
||||
|
||||
Rect ir = r.Shrink(WidgetDimensions::scaled.matrix);
|
||||
auto [first, last] = this->vscroll->GetVisibleRangeIterators(list);
|
||||
|
|
Loading…
Reference in New Issue