Files @ r5595:baebc9e54b71
Branch filter:

Location: cpp/openttd-patchpack/source/src/video/null_v.cpp

Darkvater
(svn r8049) -Regression (r7369): Removing certain news windows could cause a crash due to only
one MoveToNextItem() in DeleteVehicleNews (added in r3757). To work correctly do not
reset _forced_news to INVALID_NEWS when a new item is added, but leave it.
-Codechange: ShowLastNewsMessage has been changed so that it actually works, wraps
around correctly (array as FIFO) and shows the previous news item if the current
news item is open (previously this was doubly shown).
/* $Id$ */

#include "../stdafx.h"
#include "../openttd.h"
#include "../gfx.h"
#include "../variables.h"
#include "../window.h"
#include "null_v.h"

static void* _null_video_mem = NULL;

static const char* NullVideoStart(const char* const* parm)
{
	_screen.width = _screen.pitch = _cur_resolution[0];
	_screen.height = _cur_resolution[1];
	_null_video_mem = malloc(_cur_resolution[0] * _cur_resolution[1]);
	return NULL;
}

static void NullVideoStop(void) { free(_null_video_mem); }

static void NullVideoMakeDirty(int left, int top, int width, int height) {}

static void NullVideoMainLoop(void)
{
	uint i;

	for (i = 0; i < 1000; i++) {
		GameLoop();
		_screen.dst_ptr = (Pixel*)_null_video_mem;
		UpdateWindows();
	}
}

static bool NullVideoChangeRes(int w, int h) { return false; }
static void NullVideoFullScreen(bool fs) {}

const HalVideoDriver _null_video_driver = {
	NullVideoStart,
	NullVideoStop,
	NullVideoMakeDirty,
	NullVideoMainLoop,
	NullVideoChangeRes,
	NullVideoFullScreen,
};