r"1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0None!"*59:;<=?DIRTSupported FOV algorithms Fhttp://roguebasin.roguelikedevelopment.org/index.php?title=Ray_casting .http://www.geocities.com/temerra/los_rays.html \http://roguebasin.roguelikedevelopment.org/index.php?title=FOV_using_recursive_shadowcasting [http://roguebasin.roguelikedevelopment.org/index.php?title=Precise_Permissive_Field_of_View HMingos' Restrictive Precise Angle Shadowcasting (contribution by Mingos)     None!"*59:;<=?DIRTMouse event dataAbsolute X positionAbsolute Y position&Movement X since last update in pixels &Movement Y since last update in pixels!%Cell X coordinate in the root console"%Cell Y coordinate in the root console#-Movement X since last update in console cells$-Movement Y since last update in console cells%Left button status&Right button status'Middle button status(Left button pressed event)Right button pressed event*Middle button pressed event+Wheel up event,Wheel down event- Dice roll3;TCOD heighmap object is represented via 2-dimensional array6 24 bit color! !"#$%&'()*+,-./0123456789:;' !"#$%&'()*+,-./0123456789:;';6789:345-./012 !"#$%&'()*+, !"#$%&'()*+,-./0123456789:;None!"*59:;<=?DIRTFMap reference for FOV algorithmICreating the map objectCFirst, you have to allocate a map of the same size as your dungeon.JClearing the map[You can clear an existing map (setting all cells to the chosen walkable/transparent values)K2Copy a map to another, reallocating it when neededLDefining the cell propertiesThen, build your dungeon by defining which cells let the light pass (by default, all cells block the light) and which cells are walkable (by default, all cells are not-walkable).M Destroy a mapNComputing the field of viewaOnce your map is allocated and empty cells have been defined, you can calculate the field of viewO5Check if a cell is in the last computed field of viewPManually setting a cell in fovQ"Getting transparency flag for cellR!Getting walkability flag for cellSGetting width of the mapTGetting height of the mapU"Getting number of cells of the map123456789:;<=FGHI)width The size of the map (in map cells).*height The size of the map (in map cells).J4transparent Whether the cells should be transparent..walkable Whether the cells should be walkable.Ksource destinationLmap0x Coordinate of the cell that we want to update.0y Coordinate of the cell that we want to update.Wis transparent If true, this cell will let the light pass else it will block the light.Jis walkable If true, creatures can walk true this cell (it is not a wall).MNmap,player x. Position of the player in the map.,player y. Position of the player in the map.vmax radius. If > 0, the fov is only computed up to maxRadius cells away from the player. Else, the range is unlimited.Plight walls. Whether the wall cells near ground cells in fov must be in fov too.FOV algorithm to use.OxyPxyfovQxyRxySTUFGHIJKLMNOPQRSTUFGHIJKLMNOPQRSTU123456789:;<=FGHIJKLMNOPQRSTUNone!"*59:;<=?DIRTZZNone!"*59:;<=?DIRT%[bThis is a fast, lightweight and generic container, that provides array, list and stack paradigms.^Creating a list_You can also create an empty list and pre-allocate memory for elements. Use this if you know the list size and want the memory to fit it perfectly.`6You can create a list by duplicating an existing list.aYou can delete a list, freeing any allocated resources. Note that deleting the list does not delete it's elements. You have to use clearAndDelete before deleting the list if you want to destroy the elements too.bGYou can push an element on the stack (append it to the end of the list)cGYou can push an element on the stack (append it to the end of the list)dLYou can pop an element from the stack (remove the last element of the list).eLYou can pop an element from the stack (remove the last element of the list).f@You can read the last element of the stack without removing it :g@You can read the last element of the stack without removing it :hQYou can concatenate two lists. Every element of l2 will be added to current listi"You can retrieve a value with get.j"You can retrieve a value with get.k[You can assign a value with set. If needed, the array will allocate new elements up to idx.l[You can assign a value with set. If needed, the array will allocate new elements up to idx.mYou can iterate through the elements of the list using an iterator. begin() returns the address of the first element of the list. You go to the next element using the increment operator ++. When the iterator's value is equal to end(), you've gone through all the elements.Warning ! You cannot insert elements in the list while iterating through it. Inserting elements can result in reallocation of the list and your iterator will not longer be valid.nYou can iterate through the elements of the list using an iterator. begin() returns the address of the first element of the list. You go to the next element using the increment operator ++. When the iterator's value is equal to end(), you've gone through all the elements.Warning ! You cannot insert elements in the list while iterating through it. Inserting elements can result in reallocation of the list and your iterator will not longer be valid.o=This function reverses the order of the elements in the list.p You can remove an element from the list while iterating. The element at the iterator position will be removed. The function returns the new iterator. The _fast versions replace the element to remove with the last element of the list. They're faster, but do not preserve the list order.q You can remove an element from the list while iterating. The element at the iterator position will be removed. The function returns the new iterator. The _fast versions replace the element to remove with the last element of the list. They're faster, but do not preserve the list order.r!Removing an element from the lists!Removing an element from the listtThe _fast versions replace the element to remove with the last element of the list. They're faster, but do not preserve the list order.uThe _fast versions replace the element to remove with the last element of the list. They're faster, but do not preserve the list order.v%Checking if an element is in the listw%Checking if an element is in the listxEmptying a listy`For lists containing pointers, you can clear the list and delete (or free for C) the elements :zGetting the list size{Insert an element in the list|Insert an element in the list}Checking if a list is empty~Load to Haskell list O(N)*Unload Haskell list to TCOD container O(N)2Convert TCOD list to Haskell storable vector. O(1)wNote: The vector reuses memory of the list and valid until the TCOD list is not deleted or reallocated (due mutation).2Convert TCOD list to Haskell storable vector. O(N)5Note: The vector content is copied into haskell heap.>>?@ABCDEFGHIJKLMNOPQRST[\]^_Number of elements`abcdefghijklmnopqrstuvwxyz{|}~'[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<>?@ABCDEFGHIJKLMNOPQRST[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None!"*59:;<=?DIRT Random number distribution lawsThis is the default distribution. It will return a number from a range min-max. The numbers will be evenly distributed, ie, each number from the range has the exact same chance of being selected.This distribution does not have minimum and maximum values. Instead, a mean and a standard deviation are used. The mean is the central value. It will appear with the greatest frequency. The farther away from the mean, the less the probability of appearing the possible results have. Although extreme values are possible, 99.7% of the results will be within the radius of 3 standard deviations from the mean. So, if the mean is 0 and the standard deviation is 5, the numbers will mostly fall in the (-15,15) range.0This one takes minimum and maximum values. Under the hood, it computes the mean (which falls right between the minimum and maximum) and the standard deviation and applies a standard Gaussian distribution to the values. The difference is that the result is always guaranteed to be in the min-max range.!Essentially, this is the same as . The difference is that the values near +3 and -3 standard deviations from the mean have the highest possibility of appearing, while the mean has the lowest.!Essentially, this is the same as u, but the min and max values have the greatest probability of appearing, while the values between them, the lowest.Pseudo random number algorithma Mersenne twister generator.a Complementary-Multiply-With-Carry generator.)Reference to TCOD pseudo random generator -./012-./012None!"*59:;<=?DIRTGet  with default values !"#$%&'()*+, !"#$%&'()*+,None!"*59:;<=?DIRT!Reference to name generator stateParse a file with syllable setsIn order to be able to generate names, the name generator needs to be fed proper data. It will then be ready to generate random names defined in the file(s) it is fed. Syllable set parsing is achieved via the following.Note 1: Each file will be parsed once only. If, for some reason, you would like to parse the same file twice, you will need to destroy the generator first, which will empty the list of parsed files along with erasing all the data retrieved from those files.Note 2: The generator can be fed data multiple times if you have it in separate files. Just make sure the structure names in them aren't duplicated, otherwise they will be silently ignored.Destroy name generatorGenerating a default name=The following will output a random name generated using one of the generation rules specified in the syllable set: The name you specify needs to be in one of the files the generator has previously parsed (see Creating a generator). If such a name doesn't exist, a warning will be displayed and NULL will be returned.Generating a custom nameIt is also possible to generate a name using custom generation rules. This overrides the random choice of a generation rule from the syllable set. Please refer to tcod docs chapter 16.5 to learn about the name generation rules syntax.5Retrieve the list of all available syllable set names UVWXYMName. The structure name you wish to refer to, for instance, "celtic female".MName. The structure name you wish to refer to, for instance, "celtic female".Rule. UVWXY None!"*59:;<=?DIRT Supported noise generator typesReference to TCOD noise objectCreate a new noise objectDelete noise objectChoosing a noise typeUse this function to define the default algorithm used by the noise functions. The default algorithm is simplex. It's much faster than Perlin, especially in 4 dimensions. It has a better contrast too.Getting flat noiseXhis function returns the noise function value between -1.0 and 1.0 at given coordinates.This function returns the fbm function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.Getting turbulenceThis function returns the turbulence function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.Getting flat noiseXhis function returns the noise function value between -1.0 and 1.0 at given coordinates.This function returns the fbm function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.Getting turbulenceThis function returns the turbulence function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.Z[\]^_`ab Dimensionshurst lacunarityrandom number generator?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.bThe algorithm to use. If not defined, use the default one (set with setType or simplex if not set)?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.<Number of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128The algorithm to use?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.<Number of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128The algorithm to use?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.<Number of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128?the generator handler, returned by the initialization function.An array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.<Number of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128Z[\]^_`ab None!"*59:;<=?DIRTHelper struct for 'Allocate new heightmap with given sizes"Destroy inner buffers of heightmap%Get value of heightmap at given pointIThis function returns the interpolated height at non integer coordinates.^Once the heightmap has been created, you can do some basic operations on the values inside it.HThis function returns the slope between 0 and PI/2 at given coordinates.:This function returns the map normal at given coordinates.)Count the map cells inside a height rangeQThis function returns the number of map cells which value is between min and max.Check if the map is an islandOThis function checks if the cells on the map border are below a certain height.Get the map min and max values.Copy contents of heightmap from one to another!Adding a float value to all cellsClamping all valuesClamping all values~The whole heightmap is translated and scaled so that the lowest cell value becomes min and the highest cell value becomes maxResetting all values to 0.0-Doing a lerp operation between two heightmapsAdding two heightmaps$Multiplying values of two heightmaps Add hills>This function adds a hill (a half spheroid) at given position. Digg hills>This function digs a hill (a half spheroid) at given position. Digg hills>This function digs a hill (a half spheroid) at given position.Simulate rain erosion_This function simulates the effect of rain drops on the terrain, resulting in erosion patterns.Do a generic transformationWThis function allows you to apply a generic transformation on the map, so that each resulting cell value is the weighted sum of several neighbour cells. This can be used to smooth/sharpen the map. See examples below for a simple horizontal smoothing kernel : replace value(x,y) with 0.33*value(x-1,y) + 0.33*value(x,y) + 0.33*value(x+1,y).OTo do this, you need a kernel of size 3 (the sum involves 3 surrounding cells).Add a Voronoi diagram<This function adds values from a Voronoi diagram to the map.*Generate a map with mid-point displacementAThis algorithm generates a realistic fractal heightmap using the  a<href="http://en.wikipedia.org/wiki/Diamond-square_algorithm"diamond-square /a (or random midpoint displacement) algorithm. The roughness range should be comprised between 0.4 and 0.6. The image below show the same map with roughness varying from 0.4 to 0.6.  imgsrc="midpoint.png" /e It's also a good habit to normalize the map after using this algorithm to avoid unexpected heights.AThis function adds values from a simplex fbm function to the map.AThis function adds values from a simplex fbm function to the map.-Lowers the terrain near the heightmap bordersDcdefghijklmnopqrstuvwxyz{|}~xyYWater level (default 0). The map height is clamped at waterLevel so that the sea is flat.minmax3Return true only if no border cell is > waterLevel.&First heightmap in the lerp operation.'Second heightmap in the lerp operation.Where to store resulticoef lerp coefficient. For each cell in the destination map, value = a.value + (b.value - a.value) * coef*First heightmap in the addition operation.+Second heightmap in the addition operation.Where to store result*First heightmap in the addition operation.+Second heightmap in the addition operation.Where to store resulthxhyradiusheighthxhyradiusheightUnumber of drops. Number of rain drops to simulate. Should be at least width * height.:erosion coeff. Amount of ground eroded on the drop's path.Lsedimantation coeff. Amount of ground deposited when the drops stops to flow'RNG to use, NULL for default generator.oKernel size. Number of neighbour cells involved. dx, dy and weights should be the exact same size of the value.dx. Array of kernelSize cells coordinates. The coordinates are relative to the current cell (0,0) is current cell, (-1,0) is west cell, (0,-1) is north cell, (1,0) is east cell, (0,1) is south cell, ...dyqweights. Array of kernelSize cells weight. The value of each neighbour cell is scaled by its corresponding weightRmin level. The transformation is only applied to cells which value is >= minLevel.Rmax level. The transformation is only applied to cells which value is <= maxLevel.Number of Voronoi sites.coeff The distance to each site is scaled by the corresponding coef. Closest site : coef[0], second closest site : coef[1], ...'RNG to use, NULL for default generator.BRandom number generation to use, or NULL/0 to use the default one. roughnessThe 2D noise to use.mult x. mulx, muly H addx, addy The noise coordinate for map cell (x,y) are (x + addx)*mulx x width , (y + addy)*muly / height. Those values allow you to scale and translate the noise function over the heightmap.mult yadd xadd y*octaves. Number of octaves in the fbm sum.Adelta. The value added to the heightmap is delta + noise * scale.scale is between -1.0 and 1.0The 2D noise to use.mult x. mulx, muly H addx, addy The noise coordinate for map cell (x,y) are (x + addx)*mulx x width , (y + addy)*muly / height. Those values allow you to scale and translate the noise function over the heightmap.mult yadd xadd y*octaves. Number of octaves in the fbm sum.Adelta. The value added to the heightmap is delta + noise * scale.scale is between -1.0 and 1.0 sea levelBRandom number generation to use, or NULL/0 to use the default one.'';cdefghijklmnopqrstuvwxyz{|}~ None!"*59:;<=?DIRTDefault generatorThe simplest way to get random number is to use the default generator. The first time you get this generator, it is initialized by calling TCOD_random_new. Then, on successive calls, this function returns the same generator (singleton pattern).Generators with random seedsYou can also create as many generators as you want with a random seed (the number of seconds since Jan 1 1970 at the time the constructor is called). Warning ! If you call this function several times in the same second, it will return the same generator.(Saving a RNG state into generator-backupRestoring a saved stateuAnd restore it later. This makes it possible to get the same series of number several times with a single generator."Generators with user defined seeds Finally, you can create generators with a specific seed. Those allow you to get a reproducible set of random numbers. You can for example save a dungeon in a file by saving only the seed used for its generation (provided you have a determinist generation algorithm)Destroying a RNGnTo release resources used by a generator, use the function. NB : do not delete the default random generator !$Setting the default RNG distributionNote: See docs for Getting an integerOnce you obtained a generator (using one of those methods), you can get random numbers using the following functions, using either the explicit or simplified API where applicable:Getting a floating point numberOnce you obtained a generator (using one of those methods), you can get random numbers using the following functions, using either the explicit or simplified API where applicable:Getting an integerOnce you obtained a generator (using one of those methods), you can get random numbers using the following functions, using either the explicit or simplified API where applicable:Getting a floating point numberOnce you obtained a generator (using one of those methods), you can get random numbers using the following functions, using either the explicit or simplified API where applicable:9Create dnd-like dice from description string like "3d6+2"'Roll dice and return resulted dice side"Roll dice without initiating, see +generator that will be restored from backupbackup-generator, returned by qmin. Range of values returned. Each time you call this function, you get a number between (including) min and maxmaxqmin. Range of values returned. Each time you call this function, you get a number between (including) min and maxmaxqmin. Range of values returned. Each time you call this function, you get a number between (including) min and maxmaxmean. This is used to set a custom mean, ie, not min+((max-min)/2). It can even be outside of the min-max range. Using a mean will force the use of a weighted (Gaussian) distribution, even if linear is set.qmin. Range of values returned. Each time you call this function, you get a number between (including) min and maxmaxmean. This is used to set a custom mean, ie, not min+((max-min)/2). It can even be outside of the min-max range. Using a mean will force the use of a weighted (Gaussian) distribution, even if linear is set. None!"*59:;<=?DIRT!Display and hide the mouse cursorUBy default, the mouse cursor in visible in windowed mode, hidden in fullscreen mode. (Get the last known mouse cursor positionThis function is only valid, and only returns updated values, after you have called event-related functions. Whether to check for events, or wait for events. It does not provide the actual mouse position at the time the call is made. Getting the cursor status #Setting the mouse cursor's positioncYou can set the cursor position (in pixel coordinates, where [0,0] is the window's top left corner) Count touches as clicks    xy             None!"*59:;<=?DIRT #Reference to TCOD path finder stategOriginal pointer | Stored reference to callback that need to be freed after cleanup of the path object C type of JCallback path function, takes from (x, y) and to (x, y), returns cell cost8A custom function that must return the walk cost from coordinates xFrom,yFrom to coordinates xTo,yTo. The cost must be > 0.0f if the cell xTo,yTo is walkable. It must be equal to 0.0f if it's not. You must not take additional cost due to diagonal movements into account as it's already done by the pathfinder."Allocating a pathfinder from a map4First, you have to allocate a path using a map from  module.(Allocating a pathfinder using a callbackSince the walkable status of a cell may depend on a lot of parameters (the creature type, the weather, the terrain type...), you can also create a path by providing a function rather than relying on a TCODMap.3To release the resources used by a path, destroy itComputing an A* pathOnce you created a TCODPath object, you can compute the path between two points. Both points should be inside the map, and at a walkable position. The function returns false if there is no possible path.Walking the pathYou can walk the path and go to the next step with : Note that walking the path consume one step (and decrease the path size by one). The function returns false if recalculateWhenNeeded is false and the next cell on the path is no longer walkable, or if recalculateWhenNeeded is true, the next cell on the path is no longer walkable and no other path has been found. Also note that recalculateWhenNeeded only applies to A*.Check is path has no steps(Get number of steps the path consists ofReversing a pathAOnce you computed a path, you can exchange origin and destination Read the path cells' coordinates8You can get the coordinates of each point along the pathGet origin/start of the pathGet destination/end of the path diagonal cost. Cost of a diagonal movement compared to an horizontal or vertical movement. On a standard cartesian map, it should be sqrt(2) (1.41f). It you want the same cost for all movements, use 1.0f. If you don't want the path finder to use diagonal movements, use 0.0f. map width map height8A custom function that must return the walk cost from coordinates xFrom,yFrom to coordinates xTo,yTo. The cost must be > 0.0f if the cell xTo,yTo is walkable. It must be equal to 0.0f if it's not. You must not take additional cost due to diagonal movements into account as it's already done by the pathfinder.diagonal cost. Cost of a diagonal movement compared to an horizontal or vertical movement. On a standard cartesian map, it should be sqrt(2) (1.41f). It you want the same cost for all movements, use 1.0f. If you don't want the path finder to use diagonal movements, use 0.0f.*ox. Coordinates of the origin of the path.*oy. Coordinates of the origin of the path./dx. Coordinates of the destination of the path./dy. Coordinates of the destination of the path.recalculate when needed. If the next point is no longer walkable (another creature may be in the way), recalculate a new path and walk it.*index. Step number. 0 <= index < path size   None!"*59:;<=?DIRT"Rose tree implemented in TCOD'Allocating new tree node(Adding a new son to tree "#$%&'(nodeson)"#$%&'("#$%&'("#$%&'()None!"*59:;<=?DIRT-./0-./0-./0-./0None!"*59:;<=?DIRT 1!Different text/element alignments5Availiable renderers9Custom font flag> Key statusABackground flagPColor control flags for consoleYSpecial characters+Key data: special code or character or text:does this correspond to a key press or key release event ?Names for keyboard keysTag to track pointer to TCOD_console_tGet  with default valuesAssemble flags into int field123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~PQRSTUVWXABCDEFGHIJKLMNO>?@9:;<=56781234123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYPZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ CNone!"*59:;<=?DIRT? Color levelsI Color names_'Construct RGB color from int8 on C side`@Construct HSV (hue-saturation-value) colors from words on C sideaCompare two colors using C sidebAdd two colors using C sidec Subtract two colors using C sided Multiply two colors using C sidee&Multiply color and scalar using C sidef'Linear interpolation between two colorsgSet hue, saturation and valuehPure version of gi!Extract hue, saturation and valuejExtract hue from colork!Set hue value for color in C-sidelPure version of kmExtract saturation from colorn(Set saturation value for color in C-sideoPure version of npExtract value from colorq#Set value value for color in C-siderPure version of qsShift hue for color in C-sidetPure version of suScale HSV for color in C-sidevPure version of uwRaw binding for TCOD_color_gen_mapxTHigh-level binding that allows to generate smooth color range from given key colors.yGet color by name and level      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwmapnbKeykeyColor arraykey index arrayxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?6789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>6789:IJKLMNOPQRSTUVWXYZ[\]^?@ABCDEFGH_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?None!"*59:;<=?DIRTN TCOD imageQJYou can create an image of any size, filled with black with this function.RYou can create an image from any console (either the root console or an offscreen console). The image size will depend on the console size and the font characters size. You can then save the image to a file with the save function.SIf you need to refresh the image with the console's new content, you don't have to delete it and create another one. Instead, use this function. Note that you must use the same console that was used in the TCOD_image_from_console call (or at least a console with the same size).TYou can read data from a .bmp or .png file (for example to draw an image using the background color of the console cells). Note that only 24bits and 32bits PNG files are currently supported.UFilling an image with a colorV!Inverting the colors of the imageWFlipping the image horizontallyXFlipping the image verticallyY6Rotate the image clockwise by increment of 90 degrees.Z6Rotate the image clockwise by increment of 90 degrees.[5You can save an image to a 24 bits .bmp or .png file.\?You can read the size of an image in pixels with this function.]9You can read the colors from an image with this function.^If you have set a key color for this image with setKeyColor, or if this image was created from a 32 bits PNG file (with alpha layer), you can get the pixel transparency with this function. This function returns a value between 0 (transparent pixel) and 255 (opaque pixel)._This method uses mipmaps to get the average color of an arbitrary rectangular region of the image. It can be used to draw a scaled-down version of the image. It's used by libtcod's blitting functions.`Changing the color of a pixela%Blitting with scaling and/or rotationThis function allows you to specify the floating point coordinates of the center of the image, its scale and its rotation angle.bThis function blits a rectangular part of the image on a console without scaling it or rotating it. Each pixel of the image fills a console cell.c Blitting with subcell resolutionEventually, you can use some special characters in the libtcod fonts to double the console resolution using this blitting function.dFree memory of the imageeWhen blitting an image, you can define a key color that will be ignored by the blitting function. This makes it possible to blit non rectangular images or images with transparent pixels.faYou can use this simpler version (for images with alpha layer, returns true only if alpha == 0) :/NOPQWidthHeightRSTUVWXYNumber of rotationsZ New width New height[\]^_x0y0x1x2`a3the image handler, obtained with the load function.-The console on which the image will be drawn.8x Coordinates in the console of the center of the image.8y Coordinates in the console of the center of the image.CThis flag defines how the cell's background color is modified. See A.)scale x Scale coefficient. Must be > 0.0.)scale y Scale coefficient. Must be > 0.0. angle Rotation angle in radians.b3the image handler, obtained with the load function.-The console on which the image will be drawn.Cx Coordinates in the console of the upper-left corner of the image.Cy Coordinates in the console of the upper-left corner of the image.Iw Dimension of the image on the console. Use -1,-1 to use the image size.Ih Dimension of the image on the console. Use -1,-1 to use the image size.CThis flag defines how the cell's background color is modified. See A.c3the image handler, obtained with the load function.mThe console of which the image will be blited. Foreground, background and character data will be overwritten.[dx Coordinate of the console cell where the upper left corner of the blitted image will be.[dy Coordinate of the console cell where the upper left corner of the blitted image will be.Hsx Part of the image to blit. Use -1 in w and h to blit the whole image.Hsy Part of the image to blit. Use -1 in w and h to blit the whole image.Gw Part of the image to blit. Use -1 in w and h to blit the whole image.Gh Part of the image to blit. Use -1 in w and h to blit the whole image.defNOPQRSTUVWXYZ[\]^_`abcdefNOPQRSTUVWXYZ[\]^_`abcdef-NOPQRSTUVWXYZ[\]^_`abcdefNone!"*59:;<=?DIRTKkCreating the game windowlChanging the window titleThis function dynamically changes the title of the game window. Note that the window title is not visible while in fullscreen.m/Switching between windowed and fullscreen modesThis function switches the root console to fullscreen or windowed mode. Note that there is no predefined key combination to switch to/from fullscreen. You have to do this in your own code.nGetting the current mode=This function returns true if the current mode is fullscreen.oHandling "close window" eventsWhen you start the program, this returns false. Once a "close window" event has been sent by the window manager, it will always return true. You're supposed to exit cleanly the game.p3Check if the mouse cursor is inside the game windowoReturns true if the mouse cursor is inside the game window area and the game window is the active application.q'Check if the game application is activeJReturns false if the game window is not the active window or is iconified.r This function allows you to use a bitmap font (png or bmp) with custom character size or layout. It should be called before initializing the root console with initRoot. Once this function is called, you can define your own custom mappings using mapping functionss*Mapping a single ASCII code to a character These functions allow you to map characters in the bitmap font to ASCII codes. They should be called after initializing the root console with initRoot. You can dynamically change the characters mapping at any time, allowing to use several fonts in the same screen.t9Mapping consecutive ASCII codes to consecutive charactersu:Mapping ASCII code from a string to consecutive characters5Note: none ascii characters in the string are ignoredv#Mark region of console for rerenderwTCOD uses null pointer to reference root console, we wrap it to our type for ease of use and hiding the subtle implementation detail.x$Setting the default background colorThis function changes the default background color for a console. The default background color is used by several drawing functions like clear, putChar, ...y$Setting the default foreground colorThis function changes the default foreground color for a console. The default foreground color is used by several drawing functions like clear, putChar, ...zClearing a consoleThis function modifies all cells of a console : * set the cell's background color to the console default background color * set the cell's foreground color to the console default foreground color * set the cell's ASCII code to 32 (space){&Setting the background color of a cell}This function modifies the background color of a cell, leaving other properties (foreground color and ASCII code) unchanged.|&Setting the background color of a cell}This function modifies the background color of a cell, leaving other properties (foreground color and ASCII code) unchanged.} Setting the ASCII code of a cell6This function modifies the ASCII code of a cell, leaving other properties (background and foreground colors) unchanged. Note that since a clear console has both background and foreground colors set to black for every cell, using setchar will produce black characters on black background. Use putchar instead.~5Setting every property of a cell using default colorsThis function modifies every property of a cell : * update the cell's background color according to the console default background color (see TCOD_bkgnd_flag_t). * set the cell's foreground color to the console default foreground color * set the cell's ASCII code to c6Setting every property of a cell using specific colorsThis function modifies every property of a cell : * set the cell's background color to back. * set the cell's foreground color to fore. * set the cell's ASCII code to c.#Setting the default background flagThis function defines the background mode (see TCOD_bkgnd_flag_t) for the console. This default mode is used by several functions (print, printRect, ...)#Getting the default background flagThis function returns the background mode (see TCOD_bkgnd_flag_t) for the console. This default mode is used by several functions (print, printRect, ...)Setting the default alignmentThis function defines the default alignment (see TCOD_alignment_t) for the console. This default alignment is used by several functions (print, printRect, ...).Getting the default alignmentThis function returns the default alignment (see TCOD_alignment_t) for the console. This default mode is used by several functions (print, printRect, ...).)Printing a string with default parametersThis function print a string at a specific position using current default alignment, background flag, foreground and background colors.Note: works same as  functions=Printing a string with specific alignment and background modehis function print a string at a specific position using specific alignment and background flag, but default foreground and background colors.Note: works same as  functions6Printing a string with default parameters and autowrapThis function draws a string in a rectangle inside the console, using default colors, alignment and background mode. If the string reaches the borders of the rectangle, carriage returns are inserted. If h > 0 and the bottom of the rectangle is reached, the string is truncated. If h = 0, the string is only truncated if it reaches the bottom of the console. The function returns the height (number of console lines) of the printed string.Note: works same as  functionsJPrinting a string with specific alignment and background mode and autowrapThis function draws a string in a rectangle inside the console, using default colors, but specific alignment and background mode. If the string reaches the borders of the rectangle, carriage returns are inserted. If h > 0 and the bottom of the rectangle is reached, the string is truncated. If h = 0, the string is only truncated if it reaches the bottom of the console. The function returns the height (number of console lines) of the printed string.Note: works same as  functions+Compute the height of an autowrapped stringThis function returns the expected height of an autowrapped string without actually printing the string with printRect or printRectExNote: works same as  functions-Filling a rectangle with the background colorFill a rectangle inside a console. For each cell in the rectangle : * set the cell's background color to the console default background color * if clear is true, set the cell's ASCII code to 32 (space)Drawing an horizontal lineDraws an horizontal line in the console, using ASCII code TCOD_CHAR_HLINE (196), and the console's default background/foreground colors.Drawing an horizontal lineDraws an horizontal line in the console, using ASCII code TCOD_CHAR_HLINE (196), and the console's default background/foreground colors.Drawing a window frameThis function calls the rect function using the supplied background mode flag, then draws a rectangle with the console's default foreground color. fmt is printed on the top of the rectangle, using inverted colors.Drawing a window frameThis function calls the rect function using the supplied background mode flag, then draws a rectangle with the console's default foreground color.<Mapping unicode code from a string to consecutive charactershThose functions are similar to their ASCII equivalent, but work with unicode strings (wchar_t in C/C++).:Printing a string with default parameters, unicode versionThis function print a string at a specific position using current default alignment, background flag, foreground and background colors.~Those functions are similar to their ASCII equivalent, but work with unicode strings (wchar_t in C/C++). Note: works same as  functions=Printing a string with specific alignment and background modehis function print a string at a specific position using specific alignment and background flag, but default foreground and background colors.Note: works same as  functionsGPrinting a string with default parameters and autowrap, unicode versionThis function draws a string in a rectangle inside the console, using default colors, alignment and background mode. If the string reaches the borders of the rectangle, carriage returns are inserted. If h > 0 and the bottom of the rectangle is reached, the string is truncated. If h = 0, the string is only truncated if it reaches the bottom of the console. The function returns the height (number of console lines) of the printed string.Note: works same as  functions[Printing a string with specific alignment and background mode and autowrap, unicode versionThis function draws a string in a rectangle inside the console, using default colors, but specific alignment and background mode. If the string reaches the borders of the rectangle, carriage returns are inserted. If h > 0 and the bottom of the rectangle is reached, the string is truncated. If h = 0, the string is only truncated if it reaches the bottom of the console. The function returns the height (number of console lines) of the printed string.Note: works same as  functions8Compute the height of an autowrapped string, utf versionThis function returns the expected height of an autowrapped string without actually printing the string with printRect or printRectExNote: works same as  functions$Reading the default background color@This function returns the default background color of a console.$Reading the default foreground color@This function returns the default foreground color of a console.&Reading the background color of a cell5This function returns the background color of a cell.&Reading the foreground color of a cell5This function returns the foreground color of a cell. Reading the ASCII code of a cell*Manipulating background colors as an imageIThis function obtains the image containing the console background colors.*Manipulating foreground colors as an imageIThis function obtains the image containing the console foreground colors.Changing the fading parameters This function defines the fading parameters, allowing to easily fade the game screen to/from a color. Once they are defined, the fading parameters are valid for ever. You don't have to call setFade for each rendered frame (unless you change the fading parameters).Reading the fade amountEThis function returns the current fade amount, previously defined by setFade.Reading the fading colorNThis function returns the current fading color, previously defined by setFade.Once the root console is initialized, you can use one of the printing functions to change the background colors, the foreground colors or the ASCII characters on the console.zOnce you've finished rendering the root console, you have to actually apply the updates to the screen with this function.+Changing the colors while printing a stringIf you want to draw a string using different colors for each word, the basic solution is to call a string printing function several times, changing the default colors between each call.The TCOD library offers a simpler way to do this, allowing you to draw a string using different colors in a single call. For this, you have to insert color control codes in your string.A color control code is associated with a color set (a foreground color and a background color). If you insert this code in your string, the next characters will use the colors associated with the color control code.0There are 5 predefined color control codes : Q R S T U( To associate a color with a code, use f. To go back to the console's default colors, insert in your string the color stop control code : XhYou can also use any color without assigning it to a control code, using the generic control codes : V W,Those controls respectively change the foreground and background color used to print the string characters. In the string, you must insert the r,g,b components of the color (between 1 and 255. The value 0 is forbidden because it represents the end of the string in C/C++) immediately after this code.Deprecated as of 1.5.1Deprecated as of 1.5.1The preferred way to check for user input is to use checkForEvent below, but you can also get the status of any special key at any time with the function6Creating an offscreen console from a .asc or .apf file^You can create an offscreen console from a file created with Ascii Paint with this constructor-Loading an offscreen console from a .asc fileYou can load data from a file created with Ascii Paint with this function. When needed, the console will be resized to fit the file size. The function returns false if it couldn't read the file.-Loading an offscreen console from a .apf fileYou can load data from a file created with Ascii Paint with this function. When needed, the console will be resized to fit the file size. The function returns false if it couldn't read the file.Saving a console to a .asc fileYou can save data from a console to Ascii Paint format with this function. The function returns false if it couldn't write the file. This is the only ASC function that works also with the root console !Saving a console to a .apf fileYou can save data from a console to Ascii Paint format with this function. The function returns false if it couldn't write the file. This is the only ASC function that works also with the root console !Creating an offscreen consoleuYou can create as many off-screen consoles as you want by using this function. You can draw on them as you would do with the root console, but you cannot flush them to the screen. Else, you can blit them on other consoles, including the root console. See blit. The C version of this function returns a console handler that you can use in most console drawing functions.Get the console's width^This function returns the width of a console (either the root console or an offscreen console)Get the console's height_This function returns the height of a console (either the root console or an offscreen console)Define a blit-transparent colorThis function defines a transparent background color for an offscreen console. All cells with this background color are ignored by the blit operation. You can use it to blit only some parts of the console.!Blitting a console on another oneThis function allows you to blit a rectangular area of the source console at a specific position on a destination console. It can also simulate alpha transparency with the fade parameter.Destroying an offscreen consoleyUse this function to destroy an offscreen console and release any resources allocated. Don't use it on the root console.Using a separate credit pageYou can print a "Powered by libtcod x.y.z" screen during your game startup simply by calling this function after initRoot. The credits screen can be skipped by pressing any key.Restart the credits animationWhen using rederCredits, you can restart the credits animation from the beginning before it's finished by calling this function.%Embedding credits in an existing pageYou can also print the credits on one of your game screens (your main menu for example) by calling this function in your main loop. This function returns true when the credits screen is finished, indicating that you no longer need to call it.REXPaint supportREXPaint supportREXPaint supportREXPaint supportREXPaint supportkw size of the console(in characters). The default font in libtcod (./terminal.png) uses 8x8 pixels characters. You can change the font by calling TCODConsole::setCustomFont before calling initRoot.h}Title of the window. It's not visible when you are in fullscreen. Note 1 : you can dynamically change the window title with lqFullscreen whether you start in windowed or fullscreen mode. Note 1 : you can dynamically change this mode with consoleSetFullscreen) Note 2 : you can get current mode with consoleIsFullscreenrenderer which renderer to use. Possible values are : * RendererGLSL : works only on video cards with pixel shaders * RendererOpenGL : works on all video cards supporting OpenGL 1.4 * RendererSDL : should work everywhere! Note 1: if you select a renderer that is not supported by the player's machine, libtcod scan the lower renderers until it finds a working one. Note 2: on recent video cards, GLSL results in up to 900% increase of framerates in the true color sample compared to SDL renderer. Note 3: whatever renderer you use, it can always be overridden by the player through the libtcod.cfg file. Note 4: you can dynamically change the renderer after calling consoleInitRoot with consoleSetRenderer-. Note 5: you can get current renderer with consoleGetRenderert. It might be different from the one you set in consoleInitRoot in case it's not supported on the player's computer.lmnopqr0Name of a .bmp or .png file containing the font.DUsed to define the characters layout in the bitmap and the font typeNumber of characters in the font (horizontal). Should be 16x16 for ASCII layouts, 32x8 for TCOD layout. But you can use any other layout. If set to 0, there are deduced from the font layout flag.,Number of characters in the font (vertical).sasciiCode ASCII code to map.UfontCharX Coordinate of the character in the bitmap font (in characters, not pixels). fontCharYt&firstAsciiCode first ASCII code to map0nbCodes number of consecutive ASCII codes to mapzfontCharX coordinate of the character in the bitmap font (in characters, not pixels) corresponding to the first ASCII code fontCharYu(string containing the ASCII codes to map}fontCharX of the character in the bitmap font (in characters, not pixels) corresponding to the first ASCII code in the string fontCharYvxywhwx:the offscreen console handler or NULL for the root consoley:the offscreen console handler or NULL for the root consolez:the offscreen console handler or NULL for the root console{:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthy 0 <= y < console height<col the background color to use. You can use color constantsHflag this flag defines how the cell's background color is modified. See A|:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthy 0 <= y < console height<col the background color to use. You can use color constants}:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthy 0 <= y < console heightthe new ASCII code for the cell~:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthy 0 <= y < console heightthe new ASCII code for the cellHflag this flag defines how the cell's background color is modified. See A:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthy 0 <= y < console heightthe new ASCII code for the cell>foreground, new foreground and background colors for this cell>background, new foreground and background colors for this cell:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this consoleFormating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this consoleCthis flag defines how the cell's background color is modified. See A8aligment defines how the strings are printed on screen.Formating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightFormating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightCthis flag defines how the cell's background color is modified. See A8aligment defines how the strings are printed on screen.Formating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightFormating string, see :the offscreen console handler or NULL for the root consoleSx coordinates of rectangle upper-left corner in the console. 0 <= x < console widthTy coordinates of rectangle upper-left corner in the console. 0 <= y < console height@w size of the rectangle in the console. x <= x+w < console widthAh size of the rectangle in the console. y <= y+h < console heightclear if true, all characters inside the rectangle are set to ASCII code 32 (space). If false, only the background color is modifiedHflag this flag defines how the cell's background color is modified. See A:the offscreen console handler or NULL for the root consoleSx coordinates of rectangle upper-left corner in the console. 0 <= x < console widthTy coordinates of rectangle upper-left corner in the console. 0 <= y < console height=l The length of the line in cells 1 <= l <= console width - xHflag this flag defines how the cell's background color is modified. See A:the offscreen console handler or NULL for the root consoleSx coordinates of rectangle upper-left corner in the console. 0 <= x < console widthTy coordinates of rectangle upper-left corner in the console. 0 <= y < console height=l The length of the line in cells 1 <= l <= console width - xHflag this flag defines how the cell's background color is modified. See A:the offscreen console handler or NULL for the root consoleSx coordinates of rectangle upper-left corner in the console. 0 <= x < console widthTy coordinates of rectangle upper-left corner in the console. 0 <= y < console height@w size of the rectangle in the console. x <= x+w < console widthAh size of the rectangle in the console. y <= y+h < console heightclear if true, all characters inside the rectangle are set to ASCII code 32 (space). If false, only the background color is modifiedHflag this flag defines how the cell's background color is modified. See Aprintf-like format string, eventually followed by parameters. You can use control codes to change the colors inside the string.:the offscreen console handler or NULL for the root consoleSx coordinates of rectangle upper-left corner in the console. 0 <= x < console widthTy coordinates of rectangle upper-left corner in the console. 0 <= y < console height@w size of the rectangle in the console. x <= x+w < console widthAh size of the rectangle in the console. y <= y+h < console heightclear if true, all characters inside the rectangle are set to ASCII code 32 (space). If false, only the background color is modifiedHflag this flag defines how the cell's background color is modified. See A"string containing UTF codes to map{fontCharX of the character in the bitmap font (in characters, not pixels) corresponding to the first UTF code in the string fontCharY:the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this consoleFormating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this consoleCthis flag defines how the cell's background color is modified. See A8aligment defines how the strings are printed on screen.Formating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightFormating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightCthis flag defines how the cell's background color is modified. See A8aligment defines how the strings are printed on screen.Formating string, see :the offscreen console handler or NULL for the root consoleax coordinate of the character in the console, depending on the default alignment for this consoleay coordinate of the character in the console, depending on the default alignment for this console1w size of the rectangle. x <= x+w < console width2y size of the rectangle. y <= y+h < console heightFormating string, see :the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthAy coordinates of the cell in the console. 0 <= y < console height:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthAy coordinates of the cell in the console. 0 <= y < console height:the offscreen console handler or NULL for the root console@x coordinates of the cell in the console. 0 <= x < console widthAy coordinates of the cell in the console. 0 <= y < console height:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console`fade the fading amount. 0 => the screen is filled with the fading color. 255 => no fading effect6the color to use during the console flushing operation foreground backgroundflagsflush:the offscreen console handler or NULL for the root console.path to the .asc file created with Ascii Paint:the offscreen console handler or NULL for the root console.path to the .apf file created with Ascii Paint:the offscreen console handler or NULL for the root console.path to the .asc file created with Ascii Paint:the offscreen console handler or NULL for the root console.path to the .apf file created with Ascii Paintw the console size. 0 < wh the console size. 0 < h:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console:the offscreen console handler or NULL for the root console the transparent background color 7The source console that must be blitted on another one.Tx src. The rectangular area of the source console that will be blitted. If wSrc and&or hSrc == 0, the source console widthheight are usedy srcw srch src&dist console. The destination console.Yx dst. Where to blit the upper-left corner of the source area in the destination console.y dstforeground alpha. foregroundAlpha,backgroundAlpha Alpha transparency of the blitted console. 0.0 => The source console is completely transparent. This function does nothing. 1.0 => The source console is opaque. Its cells replace the destination cells. 0  fade< 1.0 =G The source console is partially blitted, simulating real transparency. background alpha3x Position of the credits text in your root console3y Position of the credits text in your root consolealpha If true, credits are transparently added on top of the existing screen. For this to work, this function must be placed between your screen rendering code and the console flush.compress levelcompress levelJklmnopqrstuvwxyz{|}~Jklmnopqrstuvwxyz{|}~klmnopqrstuvwxyz{|}~None!"*59:;<=?DIRT+TCOD dynamic library reference+Collected info about occured events in TCODKeyboard events Mouse eventsSet of occured event types%Flags to distinguish supported events+Initialize global TCOD reference for system+Deallocate global TCOD reference for systemoRun action with wrapped TCOD system startup/shutdown. Exception safe and intented to be used in main function. Get global timer in millisecondsOThis function returns the number of milliseconds since the program has started.Get global timer in secondsJThis function returns the number of seconds since the program has started.Pause the programWUse this function to stop the program execution for a specified number of milliseconds.vNote: all haskell threads on the same HEC will be paused too, try to use Haskell side delays instead of the function.Limit the frames per second{The setFps function allows you to limit the number of frames per second. If a frame is rendered faster than expected, the  consoleFlush function will wait so that the frame rate never exceed this value. You can call this function during your game initialization. You can dynamically change the frame rate. Just call this function once again.  bpYou should always limit the frame rate, except during benchmarks, else your game will use 100% of the CPU power /b8Get the number of frames rendered during the last second<The value returned by this function is updated every second."Get the duration of the last frameThis function returns the length in seconds of the last rendered frame. You can use this value to update every time dependent object in the world.This function allows you to save the current game screen in a png file, or possibly a bmp file if you provide a filename ending with .bmp.1Using a custom resolution for the fullscreen modeThis function allows you to force the use of a specific resolution in fullscreen mode. The default resolution depends on the root console size and the font character size.Will use the smallest available resolution so that : resolution width >= width and resolution width >= root console width * font char width resolution width >= height and resolution height >= root console height * font char height.Dynamically change libtcod's internal rendererAs of 1.5.1, libtcod contains 3 different renderers : * SDL : historic libtcod renderer. Should work and be pretty fast everywhere * OpenGL : requires OpenGL compatible video card. Might be much faster or much slower than SDL, depending on the drivers * GLSDL : requires OpenGL 1.4 compatible video card with GL_ARB_shader_objects extension. Blazing fast if you have the proper hardware and drivers. This function switches the current renderer dynamically.!Get the current internal rendererGet current resolutionYou can get the current screen resolution with getCurrentResolution. You can use it for example to get the desktop resolution before initializing the root console.Get fullscreen offsetIf the fullscreen resolution does not matches the console size in pixels, black borders are added. This function returns the position in pixels of the console top left corner in the screen.Get the font size2You can get the size of the characters in the font$Dynamically updating the font bitmapYou can dynamically change the bitmap of a character in the font. All cells using this ascii code will be updated at next flush call.Set current clipboard contentsTakes UTF-8 text and copies it into the system clipboard. On Linux, because an application cannot access the system clipboard unless a window is open, if no window is open the call will do nothing.Get current clipboard contents\Returns the UTF-8 text currently in the system clipboard. On Linux, because an application cannot access the system clipboard unless a window is open, if no window is open an empty string will be returned.Returm reference to SDL window Return reference to SDL renderer!Packing event flags into bitfield-Unpack events flags from bitfield. Note that ,  and 7 are in the set if any of dependent event is occured. 9 is never occur in the set (empty set if no events) and * is member of the set if any event occurs.)Waiting for any event (mouse or keyboard)WThis function waits for an event from the user. The eventMask shows what events we're waiting for. The return value indicate what event was actually triggered. Values in key and mouse structures are updated accordingly. If flush is false, the function waits only if there are no pending events, else it returns the first event in the buffer.*Checking for any event (mouse or keyboard)This function checks if an event from the user is in the buffer. The eventMask shows what events we're waiting for. The return value indicate what event was actually found. Values in key and mouse structures are updated accordingly.Create a directory6All those functions return false if an error occurred. Delete a file6All those functions return false if an error occurred.Delete an empty directory6All those functions return false if an error occurred.Check if a path is a directory6All those functions return false if an error occurred.List files in a directoryTo get the list of entries in a directory (including sub-directories, except . and ..). The returned list is allocated by the function and must be deleted by you. All the const char * inside must be also freed with y.Check if a given file existsvIn order to check whether a given file exists in the filesystem. Useful for detecting errors caused by missing files.&Read the content of a file into memoryjThis is a portable function to read the content of a file from disk or from the application apk (android)..Write the content of a memory buffer to a file9This is a portable function to write some data to a file.$Dynamic load of .so or .dll library.TDynamic load of function from library. Not safe as type of function is not checked."Unload dynamic library from memory Note that  can only capture single event]Name of the file. If empty, a filename is automatically generated with the form "./screenshotNNN.png", NNN being the first free number (if a file named screenshot000.png already exist, screenshot001.png will be used, and so on...).5width Resolution to use when switching to fullscreen.6height Resolution to use when switching to fullscreen.3ascii code corresponding to the character to updateQfont x coordinate of the character in the bitmap font (in characters, not pixels)Qfont y coordinate of the character in the bitmap font (in characters, not pixels)-img image containing the new character bitmapIx position in pixels of the top-left corner of the character in the imageIy position in pixels of the top-left corner of the character in the image3event types to wait for (other types are discarded)fFlush if true, all pending events are flushed from the buffer. Else, return the first available event3event types to wait for (other types are discarded)0Directory path. The immediate father directory ( path /..) must exist and be writable.0File path. This file must exist and be writable.@Directory path. This directory must exist, be writable and emptya path to checka path to checkpattern. If empty, returns all directory entries. Else returns only entries matching the pattern. The pattern is NOT a regular expression. It can only handle one 2 wildcard. Examples : *.png, saveGame*, font*.png4filename the file name, using printf-like formatting*optional arguments for filename formattingDynamic library referenceName of function to load,If succeded, then return pointer to function::J None!"*59:;<=?DIRT AHolds state of Bresenham algorithm for thread safe version of API)Takes x y of point and tells when to stopInitializing the lineTFirst, you have to initialize the toolkit with your starting and ending coordinates.Walking the lineoYou can then step through each cell with this function. It returns true when you reach the line's ending point.>Callback-based function. Stops when the callback returns falsewThe function returns false if the line has been interrupted by the callback (it returned false before the last point).*Initializing the line, thread safe versionTFirst, you have to initialize the toolkit with your starting and ending coordinates. %Walking the line, thread safe versionoYou can then step through each cell with this function. It returns true when you reach the line's ending point. SCallback-based function. Stops when the callback returns false, thread safe versionwThe function returns false if the line has been interrupted by the callback (it returned false before the last point). SCallback-based function. Stops when the callback returns false, thread safe versionwThe function returns false if the line has been interrupted by the callback (it returned false before the last point).(Note: that predicated is pure unlike in      x fromy fromx toy tox fromy fromx toy toXCallback called for each line's point. The function stops if the callback returns false.x fromy fromx toy to(State of algorithm that is passed around  x fromy fromx toy toXCallback called for each line's point. The function stops if the callback returns false. x fromy fromx toy toXCallback called for each line's point. The function stops if the callback returns false.                None!"*59:;<=?DIRTCallback for BSP traversalData for BSP of mapBSP inherit treeNode position & sizeNode position & sizeNode position & sizeNode position & sizePosition of splittinglevel int the treehorizontal splitting?Creating the root nodeiFirst, you have to create the root node of the tree. This node encompasses the whole rectangular region.Creating the root nodeiFirst, you have to create the root node of the tree. This node encompasses the whole rectangular region.Destroy BSP and all subtreesGet left subtreeGet right subtree Get parent subtree!HYou can know if a node is a leaf (not split, no sons) with this function"Traversing the treeYou can scan all the nodes of the tree and have a custom function called back for each node. Each traversal function returns false if the traversal has been interrupted (a callback returned false).hPre-order : the callback is called for the current node, then for the left son, then for the right son.#Traversing the treeYou can scan all the nodes of the tree and have a custom function called back for each node. Each traversal function returns false if the traversal has been interrupted (a callback returned false).cIn-order : the callback is called for the left son, then for current node, then for the right son.$Traversing the treeYou can scan all the nodes of the tree and have a custom function called back for each node. Each traversal function returns false if the traversal has been interrupted (a callback returned false).iPost-order : the callback is called for the left son, then for the right son, then for the current node.%Traversing the treeYou can scan all the nodes of the tree and have a custom function called back for each node. Each traversal function returns false if the traversal has been interrupted (a callback returned false).WLevel-order : the callback is called for the nodes level by level, from left to right.&Traversing the treeYou can scan all the nodes of the tree and have a custom function called back for each node. Each traversal function returns false if the traversal has been interrupted (a callback returned false).YInverted level-order : the callback is called in the exact inverse order as Level-order.' Check if a cell is inside a node("Getting the node containing a cell)This operation resets the size of the tree nodes without changing the splitting data (orientation/position). It should be called with the initial region size or a bigger size, else some splitting position may be out of the region.`You can use it if you changed the nodes size and position while using the BSP tree, which happens typically when you use the tree to build a dungeon. You create rooms inside the tree leafs, then shrink the leaf to fit the room size. Calling resize on the root node with the original region size allows you to reset all nodes to their original size.*Splitting a node onceUOnce you have the root node, you can split it into two smaller non-overlapping nodes.+Recursively splitting a nodeyYou can also recursively split the bsp. At each step, a random orientation (horizontal/vertical) and position are chosen,Deleting a part of the treeMYou can delete a part of the tree, releasing resources for all sub nodes with5  !"#Vx Top left corner position and size of the rectangular region covered by the BSP tree.ywh !"node#node$node%node&node'xy(xy)xywh* horizontal?position+randomize algorithmNumber of recursion levels.min h size. Minimum values of w and h for a node. A node is split only if the resulting sub-nodes are bigger than minHSize x minVSize min v size max h ratio. Maximum values of wh and hdw for a node. If a node does not conform, the splitting orientation is forced to reduce either the w h or the h5w ratio. Use values near 1.0 to promote square nodes. max v ratio,- !"#$%&'()*+, !"#$%&'()*+,,  !"#  !"#$%&'()*+,-None!"*59:;<=?DIRT  !"#$%&'()*+,-./0126789:FGHIJKLMNOPQRSTU[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     "#$%&'(-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>NOPQRSTUVWXYZ[\]^_`abcdefklmnopqrstuvwxyz{|}~    !"#$%&'()*+,$ !"#$%&'()*+,-./01203403503603703899:;<=>?@ABCDEFGHIJJKLMNOOPQQRSTUVWXYZ[\]^_``abcdefghijklmnopqrsttuvwxyz{|}~                                           ! ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4556789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012+tcod-haskell-0.1.0.0-9JdFGODCf32GFoGmrQ4wdiGame.TCOD.FovTypesGame.TCOD.Context Game.TCOD.FovGame.TCOD.HeightmapInstGame.TCOD.ListGame.TCOD.MersenneTypesGame.TCOD.MouseTypesGame.TCOD.NameGenGame.TCOD.NoiseGame.TCOD.HeightmapGame.TCOD.MersenneGame.TCOD.MouseGame.TCOD.PathGame.TCOD.TreeGame.TCOD.VersionGame.TCOD.ConsoleTypesGame.TCOD.ColorGame.TCOD.ImageGame.TCOD.ConsoleGame.TCOD.SystemGame.TCOD.Bresenham Game.TCOD.BSP Game.TCODFovTextPrintfTCODFovAlgorithmFovBasic FovDiamond FovShadowFovPermissive0FovPermissive1FovPermissive2FovPermissive3FovPermissive4FovPermissive5FovPermissive6FovPermissive7FovPermissive8FovRestrictive$fEqTCODFovAlgorithm$fOrdTCODFovAlgorithm$fEnumTCODFovAlgorithm$fShowTCODFovAlgorithm$fReadTCODFovAlgorithm$fBoundedTCODFovAlgorithm$fGenericTCODFovAlgorithm'inline-c-0.5.6.1-9q8ErrvRucgKJd0Vkke7xGLanguage.C.Inline.ContextfunCtxLanguage.C.Inlineverbatimincludeexpcontextblock TCODMousemouseXmouseYmouseDxmouseDymouseCxmouseCymouseDcxmouseDcy mouseLButton mouseRButton mouseMButtonmouseLButtonPressedmouseRButtonPressedmouseMButtonPressed mouseWheelUpmouseWheelDownDice diceNbRolls diceNbFacesdiceMultiplier diceAddSub TCODHeightMapunTCODHeightMapColorcolorRcolorGcolorB tcodContext $fEqColor $fOrdColor $fShowColor$fGenericColor$fEqDice $fShowDice $fGenericDice $fEqTCODMouse$fShowTCODMouse$fGenericTCODMouseTCODMap unTCODMapmapNewmapClearmapCopymapSetProperties mapDelete mapComputeFov mapIsInFov mapSetInFovmapIsTransparent mapIsWalkable mapGetWidth mapGetHeightmapGetNumberCells $fEqTCODMap $fOrdTCODMap $fShowTCODMap$fGenericTCODMap$fStorableTCODHeightMapTCODList unTCODListlistNew listAllocatelistDuplicated listDeletelistPush listPushPtrlistPop listPopPtrlistPeek listPeekPtr listAddAlllistGet listGetPtrlistSet listSetPtr listBeginPtr listEndPtr listReverselistRemoveIteratorlistRemoveIteratorFast listRemovePtr listRemovelistRemoveFastPtrlistRemoveFastlistContainsPtr listContains listClearlistClearAndDeletelistSizelistInsertBeforePtrlistInsertBefore listIsEmpty listToList listFromListlistToVectorUnsafe listToVector $fEqTCODList $fOrdTCODList$fShowTCODList$fGenericTCODList DistributionDistributionLinearDistributionGaussianDistributionGaussianRangeDistributionGaussianInverse DistributionGaussianRangeInverseRandomAlgorithmRngMTRngCMWC TCODRandom unTCODRandom$fStorableDice$fEqTCODRandom$fOrdTCODRandom$fShowTCODRandom$fGenericTCODRandom$fEqRandomAlgorithm$fOrdRandomAlgorithm$fShowRandomAlgorithm$fReadRandomAlgorithm$fEnumRandomAlgorithm$fBoundedRandomAlgorithm$fGenericRandomAlgorithm$fEqDistribution$fOrdDistribution$fShowDistribution$fReadDistribution$fEnumDistribution$fBoundedDistribution$fGenericDistributiondefaultTCODMouse$fStorableTCODMouse TCODNameGen unTCODNameGen namegenParsenamegenDestroynamegenGeneratenamegenGenerateCustomnamegenGetSets$fEqTCODNameGen$fOrdTCODNameGen$fShowTCODNameGen$fGenericTCODNameGen TCODNoiseType NoiseDefault NoisePerlin NoiseSimplex NoiseWavelet TCODNoise unTCODNoisenoiseMaxOctavesnoiseMaxDimensionsnoiseDefaultHurstnoiseDefaultLacunaritynoiseNew noiseDelete noiseSetType noiseGetEx noiseGetFbmExnoiseGetTurbulenceExnoiseGet noiseGetFbmnoiseGetTurbulence $fEqTCODNoise$fOrdTCODNoise$fShowTCODNoise$fGenericTCODNoise$fEqTCODNoiseType$fOrdTCODNoiseType$fShowTCODNoiseType$fReadTCODNoiseType$fEnumTCODNoiseType$fBoundedTCODNoiseType$fGenericTCODNoiseType DigBezierbezierP1bezierP2bezierP3bezierP4bezierStartRadiusbezierStartDepthbezierEndRadiusbezierEndDepth heightmapNewheightmapDeleteheightmapGetValueheightmapGetInterpolatedValueheightmapSetValueheightmapGetSlopeheightmapGetNormalheightmapCountCellsheightmapHasLandOnBorderheightmapGetMinMax heightmapCopy heightmapAddheightmapScaleheightmapClampheightmapNormalizeheightmapClear heightmapLerpheightmapAddHmheightmapMultiplyHmheightmapAddHillheightmapDigHillheightmapDigBezierheightmapRainErosionheightmapKernelTransformheightmapAddVoronoiheightmapMidPointDisplacementheightmapAddFbmheightmapScaleFbmheightmapIslandifyrandomGetInstance randomNew randomSave randomRestorerandomNewFromSeed randomDeleterandomSetDistribution randomGetIntrandomGetDoublerandomGetIntMeanrandomGetDoubleMean randomDiceNewrandomDiceRollrandomDiceRollSmouseShowCursormouseGetStatusmouseIsCursorVisible mouseMovemouseIncludesTouchTCODPath unTCODPath pathHaskFunTCODPathFuncRaw TCODPathFuncpathNewUsingMappathNewUsingFunction pathDelete pathComputepathWalk pathIsEmptypathSize pathReversepathGet pathGetOriginpathGetDesitnation $fEqTCODPath$fShowTCODPath $fOrdTCODPath$fGenericTCODPathTCODTreetreeNext treeFathertreeSonstreeNew treeAddSon$fStorableTCODTree $fEqTCODTree$fShowTCODTree$fGenericTCODTreetcodHexVersion tcodVersiontcodVersionNametcodTechVersion TCODAlignment AlignLeft AlignRight AlignCenter TCODRenderer RendererGLSLRendererOpenGL RendererSDL TCODFontFlagFontLayoutAsciiInColFontLayoutAsciiInRowFontTypeGreyScaleFontLayoutTcod TCODKeyStatus KeyPressed KeyReleasedTCODBackgroundFlagBackgroundNone BackgroundSetBackgroundMultiplyBackgroundLightenBackgroundDarkenBackgroundScreenBackgroundColorDodgeBackgroundColorBurn BackgroundAddBackgroundAddaBackgroundBurnBackgroundOverlayBackgroundAlphBackgroundDefaultTCODColorControlCtrl_1Ctrl_2Ctrl_3Ctrl_4Ctrl_5 CtrlForeRgb CtrlBackRgbCtrlStopTCODChar CharHline CharVlineCharNeCharNwCharSeCharSwCharTeewCharTeeeCharTeenCharTees CharCross CharDhline CharDvlineCharDneCharDnwCharDseCharDsw CharDteew CharDteee CharDteen CharDtees CharDcross CharBlock1 CharBlock2 CharBlock3 CharArrowN CharArrowS CharArrowE CharArrowW CharArrow2N CharArrow2S CharArrow2E CharArrow2W CharDarrowH CharDarrowVCharCheckboxUnsetCharCheckboxSetCharRadioUnset CharRadioSet CharSubpNw CharSubpNe CharSubpN CharSubpSe CharSubpDiag CharSubpE CharSubpSw CharSmilie CharSmilieInv CharHeart CharDiamondCharClub CharSpade CharBullet CharBulletInvCharMale CharFemaleCharNoteCharNoteDouble CharLightCharExclamDouble CharPilcrow CharSection CharPoundCharMultiplication CharFunction CharReservedCharHalfCharOneQuarter CharCopyrightCharCentCharYen CharCurrencyCharThreeQuarters CharDivision CharGrade CharUmlautCharPow1CharPow3CharPow2CharBulletSquareTCODKeykeyCodekeyCharkeyText keyPressedkeyLAltkeyLCtrlkeyLMetakeyRAltkeyRCtrlkeyRMetakeyShift TCODKeyCodeKeyNone KeyEscape KeyBackspaceKeyTabKeyEnterKeyShift KeyControlKeyAltKeyPause KeyCapslock KeyPageUp KeyPageDownKeyEndKeyHomeKeyUpKeyLeftKeyRightKeyDownKeyPrintScreen KeyInsert KeyDeleteKeyLWinKeyRWinKeyAppsKey0Key1Key2Key3Key4Key5Key6Key7Key8Key9KeyKp0KeyKp1KeyKp2KeyKp3KeyKp4KeyKp5KeyKp6KeyKp7KeyKp8KeyKp9KeyKpAddKeyKpSubKeyKpDivKeyKpMulKeyKpDec KeyKpEnterKeyF1KeyF2KeyF3KeyF4KeyF5KeyF6KeyF7KeyF8KeyF9KeyF10KeyF11KeyF12 KeyNumLock KeyScrollLockKeySpaceKeyCharKeyText TCODConsole unTCODConsoletcodKeyTextSizedefaultTCODKeycombineFontFlags$fEnumTCODFontFlag$fEnumTCODKeyStatus$fEnumTCODColorControl$fEnumTCODChar$fStorableTCODKey$fEqTCODConsole$fOrdTCODConsole$fShowTCODConsole$fGenericTCODConsole$fEqTCODKeyCode$fOrdTCODKeyCode$fShowTCODKeyCode$fReadTCODKeyCode$fEnumTCODKeyCode$fBoundedTCODKeyCode$fGenericTCODKeyCode $fEqTCODKey $fShowTCODKey$fGenericTCODKey $fEqTCODChar $fOrdTCODChar$fShowTCODChar$fReadTCODChar$fGenericTCODChar$fEqTCODColorControl$fOrdTCODColorControl$fShowTCODColorControl$fReadTCODColorControl$fGenericTCODColorControl$fEqTCODBackgroundFlag$fOrdTCODBackgroundFlag$fShowTCODBackgroundFlag$fReadTCODBackgroundFlag$fEnumTCODBackgroundFlag$fBoundedTCODBackgroundFlag$fGenericTCODBackgroundFlag$fEqTCODKeyStatus$fOrdTCODKeyStatus$fShowTCODKeyStatus$fReadTCODKeyStatus$fBoundedTCODKeyStatus$fGenericTCODKeyStatus$fEqTCODFontFlag$fOrdTCODFontFlag$fShowTCODFontFlag$fReadTCODFontFlag$fBoundedTCODFontFlag$fGenericTCODFontFlag$fEqTCODRenderer$fOrdTCODRenderer$fShowTCODRenderer$fReadTCODRenderer$fEnumTCODRenderer$fBoundedTCODRenderer$fGenericTCODRenderer$fEqTCODAlignment$fOrdTCODAlignment$fShowTCODAlignment$fReadTCODAlignment$fEnumTCODAlignment$fBoundedTCODAlignment$fGenericTCODAlignment ColorLevelColorDesaturated ColorLightest ColorLighter ColorLight ColorNormal ColorDark ColorDarker ColorDarkest ColorLevels ColorNameColorRed ColorFlame ColorOrange ColorAmber ColorYellow ColorLimeColorChartreuse ColorGreenColorSeaColorTurquoise ColorCyanColorSky ColorAzure ColorBlueColorHan ColorViolet ColorPurple ColorFuchsia ColorMagenta ColorPink ColorCrimsoncolorRGBcolorHSV colorEqualscolorAdd colorSubtract colorMultiplycolorMultiplyScalar colorLerpcolorPtrSetHSV colorSetHSV colorGetHSV colorGetHuecolorPtrSetHue colorSetHuecolorGetSaturationcolorPtrSetSaturationcolorSetSaturation colorGetValuecolorPtrSetValue colorSetValuecolorPtrShiftHue colorShiftHuecolorPtrScaleHSV colorScaleHSVcolorGenMapRaw colorGenMapcolorsblack darkestGrey darkerGreydarkGreygrey lightGrey lighterGrey lightestGrey darkestGray darkerGraydarkGraygray lightGray lighterGray lightestGraywhite darkestSepia darkerSepia darkSepiasepia lightSepia lighterSepia lightestSepiaredflameorangeamberyellowlime chartreusegreensea turquoisecyanskyazurebluehanvioletpurplefuchsiamagentapinkcrimsondarkRed darkFlame darkOrange darkAmber darkYellowdarkLimedarkChartreuse darkGreendarkSea darkTurquoisedarkCyandarkSky darkAzuredarkBluedarkHan darkViolet darkPurple darkFuchsia darkMagentadarkPink darkCrimson darkerRed darkerFlame darkerOrange darkerAmber darkerYellow darkerLimedarkerChartreuse darkerGreen darkerSeadarkerTurquoise darkerCyan darkerSky darkerAzure darkerBlue darkerHan darkerViolet darkerPurple darkerFuchsia darkerMagenta darkerPink darkerCrimson darkestRed darkestFlame darkestOrange darkestAmber darkestYellow darkestLimedarkestChartreuse darkestGreen darkestSeadarkestTurquoise darkestCyan darkestSky darkestAzure darkestBlue darkestHan darkestViolet darkestPurpledarkestFuchsiadarkestMagenta darkestPinkdarkestCrimsonlightRed lightFlame lightOrange lightAmber lightYellow lightLimelightChartreuse lightGreenlightSealightTurquoise lightCyanlightSky lightAzure lightBluelightHan lightViolet lightPurple lightFuchsia lightMagenta lightPink lightCrimson lighterRed lighterFlame lighterOrange lighterAmber lighterYellow lighterLimelighterChartreuse lighterGreen lighterSealighterTurquoise lighterCyan lighterSky lighterAzure lighterBlue lighterHan lighterViolet lighterPurplelighterFuchsialighterMagenta lighterPinklighterCrimson lightestRed lightestFlamelightestOrange lightestAmberlightestYellow lightestLimelightestChartreuse lightestGreen lightestSealightestTurquoise lightestCyan lightestSky lightestAzure lightestBlue lightestHanlightestVioletlightestPurplelightestFuchsialightestMagenta lightestPinklightestCrimsondesaturatedReddesaturatedFlamedesaturatedOrangedesaturatedAmberdesaturatedYellowdesaturatedLimedesaturatedChartreusedesaturatedGreendesaturatedSeadesaturatedTurquoisedesaturatedCyandesaturatedSkydesaturatedAzuredesaturatedBluedesaturatedHandesaturatedVioletdesaturatedPurpledesaturatedFuchsiadesaturatedMagentadesaturatedPinkdesaturatedCrimsonbrasscoppergoldsilverceladonpeach$fStorableColor $fEqColorName$fOrdColorName$fShowColorName$fReadColorName$fEnumColorName$fBoundedColorName$fGenericColorName$fEqColorLevel$fOrdColorLevel$fShowColorLevel$fReadColorLevel$fEnumColorLevel$fBoundedColorLevel$fGenericColorLevel TCODImage unTCODImageimageNewimageFromConsoleimageRefreshConsole imageLoad imageClear imageInvert imageHFlip imageVFlip imageRotate90 imageScale imageSave imageGetSize imageGetPixel imageGetAlphaimageGetMipmapPixel imagePutPixel imageBlit imageBlitRect imageBlit2X imageDeleteimageSetKeyColorimageIsPixelTransparent $fEqTCODImage$fOrdTCODImage$fShowTCODImage$fGenericTCODImageconsoleInitRootconsoleSetWindowTitleconsoleSetFullScreenconsoleIsFullScreenconsoleIsWindowClosedconsoleHasMouseFocusconsoleConsoleIsActiveconsoleSetCustomFontconsoleMapAsciiCodeToFontconsoleMapAsciiCodesToFontconsoleMapStringToFontconsoleSetDirty rootConsoleconsoleSetDefaultBackgroundconsoleSetDefaultForeground consoleClearconsoleSetCharBackgroundconsoleSetCharForegroundconsoleSetCharconsolePutCharconsolePutCharExconsoleSetBackgroundFlagconsoleGetBackgroundFlagconsoleSetAligmentconsoleGetAligmentconsolePrintAsciiconsolePrintExAsciiconsolePrintRectAsciiconsolePrintRectExAsciiconsoleGetHeightRectAscii consoleRect consoleHLine consoleVLineconsolePrintFrameconsolePrintFrame' consolePrintconsolePrintExconsolePrintRectconsolePrintRectExconsoleGetHeightRectconsoleGetDefaultBackgroundconsoleGetDefaultForegroundconsoleGetCharBackgroundconsoleGetCharForegroundconsoleGetCharconsoleGetBackgroundColorImageconsoleGetForegroundColorImageconsoleSetFadeconsoleGetFadeconsoleGetFadingColor consoleFlushconsoleSetColorControlconsoleCheckForKeyPressconsoleWaitForKeyPressconsoleIsKeyPressedconsoleFromFileconsoleLoadAscconsoleLoadApfconsoleSaveAscconsoleSaveApf consoleNewconsoleGetWidthconsoleGetHeightconsoleSetKeyColor consoleBlit consoleDeleteconsoleCreditsconsoleCreditsResetconsoleCreditsRender consoleFromXp consoleLoadXp consoleSaveXpconsoleListFromXpconsoleListSaveXp TCODLibrary unTCODLibrary TCODEventInfotcodKey tcodMouse tcodEvents TCODEvent EventNone EventKeyPressEventKeyReleaseEventKeyEventMouseMoveEventMousePressEventMouseRelease EventMouseEventFingerMoveEventFingerPressEventFingerRelease EventFingerEventAny systemStartupsystemShutdown withSystemsystemElapsedMillisystemElapsedSecondssystemSleepMilli systemSetFps systemGetFpssystemGetLastFrameLengthsystemSaveScreenshotsystemForceFullscreenResolutionsystemSetRenderersystemGetRenderersystemGetCurrentResolutionsystemGetFullscreenOffsetssystemGetCharSizesystemUpdateCharsystemClipboardSetsystemClipboardGetsystemGetSDLWindowsystemGetSDLRendererpackTCODEventsunpackTCODEventssystemWaitForEventsystemCheckForEventsystemCreateDirectorysystemDeleteFilesystemDeleteDirectorysystemIsDirectorysystemGetDirectoryContentsystemFileExistssystemReadFilesystemWriteFile loadLibrarygetFunctionAddress closeLibrary$fEnumTCODEvent $fEqTCODEvent$fOrdTCODEvent$fShowTCODEvent$fGenericTCODEvent$fGenericTCODEventInfo$fEqTCODLibrary$fOrdTCODLibrary$fShowTCODLibrary$fGenericTCODLibraryTCODBresenhamData bresenStepX bresenStepYbresenE bresenDeltaX bresenDeltaY bresenOrigX bresenOrigY bresenDestX bresenDestYTCODLineListenerlineInitGloballineStepGlobal lineGloballineInitlineSteplineIOline$fStorableTCODBresenhamData$fEqTCODBresenhamData$fShowTCODBresenhamData$fGenericTCODBresenhamData BSPCallbackBSPbspTreebspXbspYbspWbspH bspPositionbspLevel bspHorizontalbspNewbspNewWithSize bspDeletebspLeftbspRight bspFather bspIsLeafbspTraversePreOrderbspTraverseInOrderbspTraversePostOrderbspTraverseLevelOrderbspTraverseInvertedLevelOrder bspContains bspFindNode bspResize bspSplitOncebspSplitRecursive bspRemoveSons $fStorableBSP$fEqBSP $fShowBSP $fGenericBSP inline_c_ffi_6989586621679127426 inline_c_ffi_6989586621679127494 inline_c_ffi_6989586621679127506 inline_c_ffi_6989586621679127531 inline_c_ffi_6989586621679127540 inline_c_ffi_6989586621679127569 inline_c_ffi_6989586621679127586 inline_c_ffi_6989586621679127607 inline_c_ffi_6989586621679127624 inline_c_ffi_6989586621679127641 inline_c_ffi_6989586621679127650 inline_c_ffi_6989586621679127659 inline_c_ffi_6989586621679127668 inline_c_ffi_6989586621679146951 inline_c_ffi_6989586621679146961 inline_c_ffi_6989586621679146970 inline_c_ffi_6989586621679146979 inline_c_ffi_6989586621679146994 inline_c_ffi_6989586621679147005 inline_c_ffi_6989586621679147016 inline_c_ffi_6989586621679147028 inline_c_ffi_6989586621679147044 inline_c_ffi_6989586621679147065 inline_c_ffi_6989586621679147074 inline_c_ffi_6989586621679147083 inline_c_ffi_6989586621679147092 inline_c_ffi_6989586621679147105 inline_c_ffi_6989586621679147118 inline_c_ffi_6989586621679147131 inline_c_ffi_6989586621679147147 inline_c_ffi_6989586621679147163 inline_c_ffi_6989586621679147174 inline_c_ffi_6989586621679147183 inline_c_ffi_6989586621679147192 inline_c_ffi_6989586621679147209 inline_c_ffi_6989586621679147222 inline_c_ffi_6989586621679198279 inline_c_ffi_6989586621679198285 inline_c_ffi_6989586621679198295 inline_c_ffi_6989586621679198310 inline_c_ffi_6989586621679198317 inline_c_ffi_6989586621679202270 inline_c_ffi_6989586621679202279 inline_c_ffi_6989586621679202292 inline_c_ffi_6989586621679202309 inline_c_ffi_6989586621679202330 inline_c_ffi_6989586621679202351 inline_c_ffi_6989586621679202364 inline_c_ffi_6989586621679202381 inline_c_ffi_6989586621679202398 inline_c_ffi_6989586621679231734 inline_c_ffi_6989586621679231744 inline_c_ffi_6989586621679231762 inline_c_ffi_6989586621679231780 inline_c_ffi_6989586621679231802 inline_c_ffi_6989586621679231820 inline_c_ffi_6989586621679231859 inline_c_ffi_6989586621679231878 inline_c_ffi_6989586621679231892 inline_c_ffi_6989586621679231908 inline_c_ffi_6989586621679231923 inline_c_ffi_6989586621679231937 inline_c_ffi_6989586621679231951 inline_c_ffi_6989586621679231969 inline_c_ffi_6989586621679231987 inline_c_ffi_6989586621679231997 inline_c_ffi_6989586621679232019 inline_c_ffi_6989586621679232037 inline_c_ffi_6989586621679232055 inline_c_ffi_6989586621679232081 inline_c_ffi_6989586621679232107 inline_c_ffi_6989586621679232172 inline_c_ffi_6989586621679232197 inline_c_ffi_6989586621679232231 inline_c_ffi_6989586621679232255 inline_c_ffi_6989586621679232272 inline_c_ffi_6989586621679232313 inline_c_ffi_6989586621679232354 inline_c_ffi_6989586621679232371 inline_c_ffi_6989586621679290607 inline_c_ffi_6989586621679290617 inline_c_ffi_6989586621679290626 inline_c_ffi_6989586621679290638 inline_c_ffi_6989586621679290652 inline_c_ffi_6989586621679290661 inline_c_ffi_6989586621679290674 inline_c_ffi_6989586621679290691 inline_c_ffi_6989586621679290708 inline_c_ffi_6989586621679290729 inline_c_ffi_6989586621679290750 inline_c_ffi_6989586621679290763 inline_c_ffi_6989586621679290776 inline_c_ffi_6989586621679290789 inline_c_ffi_6989586621679297342 inline_c_ffi_6989586621679297351 inline_c_ffi_6989586621679297357 inline_c_ffi_6989586621679297371 inline_c_ffi_6989586621679297381 inline_c_ffi_6989586621679299207 inline_c_ffi_6989586621679299336 inline_c_ffi_6989586621679299352 inline_c_ffi_6989586621679299363 inline_c_ffi_6989586621679299784 inline_c_ffi_6989586621679299803 inline_c_ffi_6989586621679299814 inline_c_ffi_6989586621679299823 inline_c_ffi_6989586621679299832 inline_c_ffi_6989586621679299851 inline_c_ffi_6989586621679299867 inline_c_ffi_6989586621679299883 inline_c_ffi_6989586621679315388 inline_c_ffi_6989586621679315404 inline_c_ffi_6989586621679320878 inline_c_ffi_6989586621679320884 inline_c_ffi_6989586621679320890 inline_c_ffi_6989586621679320896 inline_c_ffi_6989586621679322350 inline_c_ffi_6989586621679322385 inline_c_ffi_6989586621679458537 inline_c_ffi_6989586621679458558 inline_c_ffi_6989586621679458572 inline_c_ffi_6989586621679458589 inline_c_ffi_6989586621679458606 inline_c_ffi_6989586621679458623 inline_c_ffi_6989586621679458640 inline_c_ffi_6989586621679458661 inline_c_ffi_6989586621679458682 inline_c_ffi_6989586621679458706 inline_c_ffi_6989586621679458717 inline_c_ffi_6989586621679458730 inline_c_ffi_6989586621679458743 inline_c_ffi_6989586621679458756 inline_c_ffi_6989586621679458769 inline_c_ffi_6989586621679458782 inline_c_ffi_6989586621679458798 inline_c_ffi_6989586621679458818 inline_c_ffi_6989586621679458840 inline_c_ffi_6989586621679458997 inline_c_ffi_6989586621679459006 inline_c_ffi_6989586621679459015 inline_c_ffi_6989586621679459024 inline_c_ffi_6989586621679459033 inline_c_ffi_6989586621679459042 inline_c_ffi_6989586621679459051 inline_c_ffi_6989586621679459060 inline_c_ffi_6989586621679459069 inline_c_ffi_6989586621679459078 inline_c_ffi_6989586621679459087 inline_c_ffi_6989586621679459096 inline_c_ffi_6989586621679459105 inline_c_ffi_6989586621679459114 inline_c_ffi_6989586621679459123 inline_c_ffi_6989586621679459132 inline_c_ffi_6989586621679459141 inline_c_ffi_6989586621679459150 inline_c_ffi_6989586621679459159 inline_c_ffi_6989586621679459168 inline_c_ffi_6989586621679459177 inline_c_ffi_6989586621679459186 inline_c_ffi_6989586621679459195 inline_c_ffi_6989586621679459204 inline_c_ffi_6989586621679459213 inline_c_ffi_6989586621679459222 inline_c_ffi_6989586621679459231 inline_c_ffi_6989586621679459240 inline_c_ffi_6989586621679459249 inline_c_ffi_6989586621679459258 inline_c_ffi_6989586621679459267 inline_c_ffi_6989586621679459276 inline_c_ffi_6989586621679459285 inline_c_ffi_6989586621679459294 inline_c_ffi_6989586621679459303 inline_c_ffi_6989586621679459312 inline_c_ffi_6989586621679459321 inline_c_ffi_6989586621679459330 inline_c_ffi_6989586621679459339 inline_c_ffi_6989586621679459348 inline_c_ffi_6989586621679459357 inline_c_ffi_6989586621679459366 inline_c_ffi_6989586621679459375 inline_c_ffi_6989586621679459384 inline_c_ffi_6989586621679459393 inline_c_ffi_6989586621679459402 inline_c_ffi_6989586621679459411 inline_c_ffi_6989586621679459420 inline_c_ffi_6989586621679459429 inline_c_ffi_6989586621679459438 inline_c_ffi_6989586621679459447 inline_c_ffi_6989586621679459456 inline_c_ffi_6989586621679459465 inline_c_ffi_6989586621679459474 inline_c_ffi_6989586621679459483 inline_c_ffi_6989586621679459492 inline_c_ffi_6989586621679459501 inline_c_ffi_6989586621679459510 inline_c_ffi_6989586621679459519 inline_c_ffi_6989586621679459528 inline_c_ffi_6989586621679459537 inline_c_ffi_6989586621679459546 inline_c_ffi_6989586621679459555 inline_c_ffi_6989586621679459564 inline_c_ffi_6989586621679459573 inline_c_ffi_6989586621679459582 inline_c_ffi_6989586621679459591 inline_c_ffi_6989586621679459600 inline_c_ffi_6989586621679459609 inline_c_ffi_6989586621679459618 inline_c_ffi_6989586621679459627 inline_c_ffi_6989586621679459636 inline_c_ffi_6989586621679459645 inline_c_ffi_6989586621679459654 inline_c_ffi_6989586621679459663 inline_c_ffi_6989586621679459672 inline_c_ffi_6989586621679459681 inline_c_ffi_6989586621679459690 inline_c_ffi_6989586621679459699 inline_c_ffi_6989586621679459708 inline_c_ffi_6989586621679459717 inline_c_ffi_6989586621679459726 inline_c_ffi_6989586621679459735 inline_c_ffi_6989586621679459744 inline_c_ffi_6989586621679459753 inline_c_ffi_6989586621679459762 inline_c_ffi_6989586621679459771 inline_c_ffi_6989586621679459780 inline_c_ffi_6989586621679459789 inline_c_ffi_6989586621679459798 inline_c_ffi_6989586621679459807 inline_c_ffi_6989586621679459816 inline_c_ffi_6989586621679459825 inline_c_ffi_6989586621679459834 inline_c_ffi_6989586621679459843 inline_c_ffi_6989586621679459852 inline_c_ffi_6989586621679459861 inline_c_ffi_6989586621679459870 inline_c_ffi_6989586621679459879 inline_c_ffi_6989586621679459888 inline_c_ffi_6989586621679459897 inline_c_ffi_6989586621679459906 inline_c_ffi_6989586621679459915 inline_c_ffi_6989586621679459924 inline_c_ffi_6989586621679459933 inline_c_ffi_6989586621679459942 inline_c_ffi_6989586621679459951 inline_c_ffi_6989586621679459960 inline_c_ffi_6989586621679459969 inline_c_ffi_6989586621679459978 inline_c_ffi_6989586621679459987 inline_c_ffi_6989586621679459996 inline_c_ffi_6989586621679460005 inline_c_ffi_6989586621679460014 inline_c_ffi_6989586621679460023 inline_c_ffi_6989586621679460032 inline_c_ffi_6989586621679460041 inline_c_ffi_6989586621679460050 inline_c_ffi_6989586621679460059 inline_c_ffi_6989586621679460068 inline_c_ffi_6989586621679460077 inline_c_ffi_6989586621679460086 inline_c_ffi_6989586621679460095 inline_c_ffi_6989586621679460104 inline_c_ffi_6989586621679460113 inline_c_ffi_6989586621679460122 inline_c_ffi_6989586621679460131 inline_c_ffi_6989586621679460140 inline_c_ffi_6989586621679460149 inline_c_ffi_6989586621679460158 inline_c_ffi_6989586621679460167 inline_c_ffi_6989586621679460176 inline_c_ffi_6989586621679460185 inline_c_ffi_6989586621679460194 inline_c_ffi_6989586621679460203 inline_c_ffi_6989586621679460212 inline_c_ffi_6989586621679460221 inline_c_ffi_6989586621679460230 inline_c_ffi_6989586621679460239 inline_c_ffi_6989586621679460248 inline_c_ffi_6989586621679460257 inline_c_ffi_6989586621679460266 inline_c_ffi_6989586621679460275 inline_c_ffi_6989586621679460284 inline_c_ffi_6989586621679460293 inline_c_ffi_6989586621679460302 inline_c_ffi_6989586621679460311 inline_c_ffi_6989586621679460320 inline_c_ffi_6989586621679460329 inline_c_ffi_6989586621679460338 inline_c_ffi_6989586621679460347 inline_c_ffi_6989586621679460356 inline_c_ffi_6989586621679460365 inline_c_ffi_6989586621679460374 inline_c_ffi_6989586621679460383 inline_c_ffi_6989586621679460392 inline_c_ffi_6989586621679460401 inline_c_ffi_6989586621679460410 inline_c_ffi_6989586621679460419 inline_c_ffi_6989586621679460428 inline_c_ffi_6989586621679460437 inline_c_ffi_6989586621679460446 inline_c_ffi_6989586621679460455 inline_c_ffi_6989586621679460464 inline_c_ffi_6989586621679460473 inline_c_ffi_6989586621679460482 inline_c_ffi_6989586621679460491 inline_c_ffi_6989586621679460500 inline_c_ffi_6989586621679460509 inline_c_ffi_6989586621679460518 inline_c_ffi_6989586621679460527 inline_c_ffi_6989586621679460536 inline_c_ffi_6989586621679460545 inline_c_ffi_6989586621679460554 inline_c_ffi_6989586621679460563 inline_c_ffi_6989586621679460572 inline_c_ffi_6989586621679460581 inline_c_ffi_6989586621679460590 inline_c_ffi_6989586621679460599 inline_c_ffi_6989586621679460608 inline_c_ffi_6989586621679460617 inline_c_ffi_6989586621679460626 inline_c_ffi_6989586621679460635 inline_c_ffi_6989586621679460644 inline_c_ffi_6989586621679460653 inline_c_ffi_6989586621679460662 inline_c_ffi_6989586621679460671 inline_c_ffi_6989586621679460680 inline_c_ffi_6989586621679460689 inline_c_ffi_6989586621679460698 inline_c_ffi_6989586621679460707 inline_c_ffi_6989586621679460716 inline_c_ffi_6989586621679460725 inline_c_ffi_6989586621679460734 inline_c_ffi_6989586621679460743 inline_c_ffi_6989586621679460752 inline_c_ffi_6989586621679460761 inline_c_ffi_6989586621679460770 inline_c_ffi_6989586621679618316 inline_c_ffi_6989586621679618325 inline_c_ffi_6989586621679618337 inline_c_ffi_6989586621679618347 inline_c_ffi_6989586621679618360 inline_c_ffi_6989586621679618369 inline_c_ffi_6989586621679618378 inline_c_ffi_6989586621679618387 inline_c_ffi_6989586621679618400 inline_c_ffi_6989586621679618417 inline_c_ffi_6989586621679618430 inline_c_ffi_6989586621679618445 inline_c_ffi_6989586621679618466 inline_c_ffi_6989586621679618483 inline_c_ffi_6989586621679618511 inline_c_ffi_6989586621679618532 inline_c_ffi_6989586621679618568 inline_c_ffi_6989586621679618600 inline_c_ffi_6989586621679618636 inline_c_ffi_6989586621679618645 inline_c_ffi_6989586621679618658 inline_c_ffi_6989586621679618675consoleMapStringToFontUtf inline_c_ffi_6989586621679632401 inline_c_ffi_6989586621679632411 inline_c_ffi_6989586621679632421 inline_c_ffi_6989586621679632427 inline_c_ffi_6989586621679632433 inline_c_ffi_6989586621679632439 inline_c_ffi_6989586621679632445 inline_c_ffi_6989586621679632467 inline_c_ffi_6989586621679632485 inline_c_ffi_6989586621679632507 inline_c_ffi_6989586621679632802 inline_c_ffi_6989586621679632824 inline_c_ffi_6989586621679632837 inline_c_ffi_6989586621679632850 inline_c_ffi_6989586621679632859 inline_c_ffi_6989586621679632884 inline_c_ffi_6989586621679632905 inline_c_ffi_6989586621679632926 inline_c_ffi_6989586621679632951 inline_c_ffi_6989586621679632980 inline_c_ffi_6989586621679632993 inline_c_ffi_6989586621679633002 inline_c_ffi_6989586621679633015 inline_c_ffi_6989586621679633024 inline_c_ffi_6989586621679633046 inline_c_ffi_6989586621679633076 inline_c_ffi_6989586621679633106 inline_c_ffi_6989586621679633144 inline_c_ffi_6989586621679633174 inline_c_ffi_6989586621679633207 inline_c_ffi_6989586621679633232 inline_c_ffi_6989586621679633257 inline_c_ffi_6989586621679633295 inline_c_ffi_6989586621679633328 inline_c_ffi_6989586621679633346 inline_c_ffi_6989586621679633368 inline_c_ffi_6989586621679633398 inline_c_ffi_6989586621679633428 inline_c_ffi_6989586621679633466 inline_c_ffi_6989586621679633496 inline_c_ffi_6989586621679633508 inline_c_ffi_6989586621679633520 inline_c_ffi_6989586621679633540 inline_c_ffi_6989586621679633560 inline_c_ffi_6989586621679633577 inline_c_ffi_6989586621679633586 inline_c_ffi_6989586621679633595 inline_c_ffi_6989586621679633609 inline_c_ffi_6989586621679633615 inline_c_ffi_6989586621679633624 inline_c_ffi_6989586621679633630 inline_c_ffi_6989586621679633648 inline_c_ffi_6989586621679633662 inline_c_ffi_6989586621679633676 inline_c_ffi_6989586621679633686 inline_c_ffi_6989586621679633696 inline_c_ffi_6989586621679633709 inline_c_ffi_6989586621679633722 inline_c_ffi_6989586621679633735 inline_c_ffi_6989586621679633748 inline_c_ffi_6989586621679633762 inline_c_ffi_6989586621679633771 inline_c_ffi_6989586621679633780 inline_c_ffi_6989586621679633793 inline_c_ffi_6989586621679633837 inline_c_ffi_6989586621679633846 inline_c_ffi_6989586621679633852 inline_c_ffi_6989586621679633858 inline_c_ffi_6989586621679633876 inline_c_ffi_6989586621679633886 inline_c_ffi_6989586621679633899 inline_c_ffi_6989586621679633916 inline_c_ffi_6989586621679633926 inline_c_ffi_6989586621679633943baseGHC.EnumtoEnum inline_c_ffi_6989586621679687011 inline_c_ffi_6989586621679687017 inline_c_ffi_6989586621679687349 inline_c_ffi_6989586621679687355 inline_c_ffi_6989586621679687365 inline_c_ffi_6989586621679687375 inline_c_ffi_6989586621679687381 inline_c_ffi_6989586621679687387 inline_c_ffi_6989586621679687394 inline_c_ffi_6989586621679687404 inline_c_ffi_6989586621679687418 inline_c_ffi_6989586621679687428 inline_c_ffi_6989586621679687434 inline_c_ffi_6989586621679687446 inline_c_ffi_6989586621679687459 inline_c_ffi_6989586621679687472 inline_c_ffi_6989586621679687502 inline_c_ffi_6989586621679687512 inline_c_ffi_6989586621679687518 inline_c_ffi_6989586621679687524 inline_c_ffi_6989586621679687530 inline_c_ffi_6989586621679687563 inline_c_ffi_6989586621679687584 inline_c_ffi_6989586621679687597 inline_c_ffi_6989586621679687607 inline_c_ffi_6989586621679687617 inline_c_ffi_6989586621679687627 inline_c_ffi_6989586621679687641 inline_c_ffi_6989586621679687652 inline_c_ffi_6989586621679687668 inline_c_ffi_6989586621679687690 inline_c_ffi_6989586621679687700 inline_c_ffi_6989586621679687714 inline_c_ffi_6989586621679687724GHC.Num* inline_c_ffi_6989586621679717634 inline_c_ffi_6989586621679717646 inline_c_ffi_6989586621679717673 inline_c_ffi_6989586621679717680 inline_c_ffi_6989586621679717706 inline_c_ffi_6989586621679717723 inline_c_ffi_6989586621679717752 inline_c_ffi_6989586621679717761 inline_c_ffi_6989586621679737052 inline_c_ffi_6989586621679737074 inline_c_ffi_6989586621679737084 inline_c_ffi_6989586621679737095 inline_c_ffi_6989586621679737107 inline_c_ffi_6989586621679737119 inline_c_ffi_6989586621679737131 inline_c_ffi_6989586621679737147 inline_c_ffi_6989586621679737151 inline_c_ffi_6989586621679737167 inline_c_ffi_6989586621679737171 inline_c_ffi_6989586621679737187 inline_c_ffi_6989586621679737191 inline_c_ffi_6989586621679737207 inline_c_ffi_6989586621679737211 inline_c_ffi_6989586621679737227 inline_c_ffi_6989586621679737231 inline_c_ffi_6989586621679737250 inline_c_ffi_6989586621679737269 inline_c_ffi_6989586621679737297 inline_c_ffi_6989586621679737316 inline_c_ffi_6989586621679737350 inline_c_ffi_6989586621679737361