aboutsummaryrefslogtreecommitdiff
path: root/src/client/render/plain.h
blob: 80c17ed9f96daf511ebc3374a1214f8f4edf3347 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
Minetest
Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2017 numzero, Lobachevskiy Vitaliy <numzer0@yandex.ru>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#pragma once
#include "core.h"

class RenderingCorePlain : public RenderingCore
{
protected:
	int scale = 0;
	video::ITexture *lowres = nullptr;

	void initTextures() override;
	void clearTextures() override;
	void beforeDraw() override;
	void upscale();

public:
	RenderingCorePlain(IrrlichtDevice *_device, Client *_client, Hud *_hud);
	void drawAll() override;
};
="hl pps">"sqlite3.h" class IGameDef; struct ActionRow; struct Entity; class RollbackManager: public IRollbackManager { public: RollbackManager(const std::string & world_path, IGameDef * gamedef); ~RollbackManager(); void reportAction(const RollbackAction & action_); std::string getActor(); bool isActorGuess(); void setActor(const std::string & actor, bool is_guess); std::string getSuspect(v3s16 p, float nearness_shortcut, float min_nearness); void flush(); void addAction(const RollbackAction & action); std::list<RollbackAction> getEntriesSince(time_t first_time); std::list<RollbackAction> getNodeActors(v3s16 pos, int range, time_t seconds, int limit); std::list<RollbackAction> getRevertActions( const std::string & actor_filter, time_t seconds); private: void registerNewActor(const int id, const std::string & name); void registerNewNode(const int id, const std::string & name); int getActorId(const std::string & name); int getNodeId(const std::string & name); const char * getActorName(const int id); const char * getNodeName(const int id); bool createTables(); bool initDatabase(); bool registerRow(const ActionRow & row); const std::list<ActionRow> actionRowsFromSelect(sqlite3_stmt * stmt); ActionRow actionRowFromRollbackAction(const RollbackAction & action); const std::list<RollbackAction> rollbackActionsFromActionRows( const std::list<ActionRow> & rows); const std::list<ActionRow> getRowsSince(time_t firstTime, const std::string & actor); const std::list<ActionRow> getRowsSince_range(time_t firstTime, v3s16 p, int range, int limit); const std::list<RollbackAction> getActionsSince_range(time_t firstTime, v3s16 p, int range, int limit); const std::list<RollbackAction> getActionsSince(time_t firstTime, const std::string & actor = ""); void migrate(const std::string & filepath); static float getSuspectNearness(bool is_guess, v3s16 suspect_p, time_t suspect_t, v3s16 action_p, time_t action_t); IGameDef *gamedef = nullptr; std::string current_actor; bool current_actor_is_guess = false; std::list<RollbackAction> action_todisk_buffer; std::list<RollbackAction> action_latest_buffer; std::string database_path; sqlite3 * db; sqlite3_stmt * stmt_insert; sqlite3_stmt * stmt_replace; sqlite3_stmt * stmt_select; sqlite3_stmt * stmt_select_range; sqlite3_stmt * stmt_select_withActor; sqlite3_stmt * stmt_knownActor_select; sqlite3_stmt * stmt_knownActor_insert; sqlite3_stmt * stmt_knownNode_select; sqlite3_stmt * stmt_knownNode_insert; std::vector<Entity> knownActors; std::vector<Entity> knownNodes; };