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) {
|
if (topleft <= clicked && clicked <= bottomright) {
|
||||||
uint offset = (((size_t)clicked - (size_t)topleft) / (blitter->GetScreenDepth() / 8)) % bp.pitch;
|
uint offset = (((size_t)clicked - (size_t)topleft) / (blitter->GetScreenDepth() / 8)) % bp.pitch;
|
||||||
if (offset < (uint)bp.width) {
|
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
|
#ifndef NEWGRF_DEBUG_H
|
||||||
#define NEWGRF_DEBUG_H
|
#define NEWGRF_DEBUG_H
|
||||||
|
|
||||||
|
#include "core/flatset_type.hpp"
|
||||||
#include "newgrf.h"
|
#include "newgrf.h"
|
||||||
#include "tile_type.h"
|
#include "tile_type.h"
|
||||||
#include "vehicle_type.h"
|
#include "vehicle_type.h"
|
||||||
|
@ -25,7 +26,7 @@ enum NewGrfDebugSpritePickerMode : uint8_t {
|
||||||
struct NewGrfDebugSpritePicker {
|
struct NewGrfDebugSpritePicker {
|
||||||
NewGrfDebugSpritePickerMode mode; ///< Current state
|
NewGrfDebugSpritePickerMode mode; ///< Current state
|
||||||
void *clicked_pixel; ///< Clicked pixel (pointer to blitter buffer)
|
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;
|
extern NewGrfDebugSpritePicker _newgrf_debug_sprite_picker;
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
|
||||||
/** The sprite picker. */
|
/** 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.
|
* Get the feature index related to the window number.
|
||||||
|
@ -957,7 +957,7 @@ struct SpriteAlignerWindow : Window {
|
||||||
const NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget);
|
const NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget);
|
||||||
int step_size = nwid->resize_y;
|
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);
|
Rect ir = r.Shrink(WidgetDimensions::scaled.matrix);
|
||||||
auto [first, last] = this->vscroll->GetVisibleRangeIterators(list);
|
auto [first, last] = this->vscroll->GetVisibleRangeIterators(list);
|
||||||
|
|
Loading…
Reference in New Issue