Files @ r5124:e841fbeef573
Branch filter:

Location: cpp/openttd-patchpack/source/yapf/yapf_common.cpp

Darkvater
(svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed with the actual window
structs inside their array, and possibly invalidating pointers higher up.
Meaning that any function called within an wndproc could cause unknown/invalid pointers
once control was returned to this function. Solved by the introduction of an extra
abstraction layer, an array of z-window positions that is only concerned with the
pointers.
/* $Id$ */

#include "../stdafx.h"

#include "yapf.hpp"
#include "follow_track.hpp"
#include "yapf_node_rail.hpp"
#include "yapf_costbase.hpp"
#include "yapf_costcache.hpp"

/** translate tileh to the bitset of up-hill trackdirs */
const TrackdirBits CYapfCostBase::c_upwards_slopes[] = {
	TRACKDIR_BIT_NONE                    , // no tileh
	TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_NW, // 1
	TRACKDIR_BIT_X_SW | TRACKDIR_BIT_Y_SE, // 2
	TRACKDIR_BIT_X_SW                    , // 3
	TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_SE, // 4
	TRACKDIR_BIT_NONE                    , // 5
	TRACKDIR_BIT_Y_SE                    , // 6
	TRACKDIR_BIT_NONE                    , // 7
	TRACKDIR_BIT_X_NE | TRACKDIR_BIT_Y_NW, // 8,
	TRACKDIR_BIT_Y_NW                    , // 9
	TRACKDIR_BIT_NONE                    , //10
	TRACKDIR_BIT_NONE                    , //11,
	TRACKDIR_BIT_X_NE                    , //12
	TRACKDIR_BIT_NONE                    , //13
	TRACKDIR_BIT_NONE                    , //14
	TRACKDIR_BIT_NONE                    , //15
};