text: /* VUEngine - Virtual Utopia Engine <http://vuengine.planetvb.com/>
   * A universal game engine for the Nintendo Virtual Boy
   *
   * Copyright (C) 2007, 2018 by Jorge Eremiev <jorgech3@gmail.com> and Christian Radke <chris@vr32.de>
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
   * associated documentation files (the "Software"), to deal in the Software without restriction, including
   * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
   * the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in all copies or substantial
   * portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
   * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
   * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
   * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   */
  
  #include <VueMasterState.h>
  #if(__NUMBER_OF_VIEWER_IMAGES >= 44)
  
  
  //---------------------------------------------------------------------------------------------------------
  //												INCLUDES
  //---------------------------------------------------------------------------------------------------------
  
  #include <AnimatedEntity.h>
  #include <BgmapSprite.h>
  #include <VueMasterState.h>
  
  
  //---------------------------------------------------------------------------------------------------------
  // 												DECLARATIONS
  //---------------------------------------------------------------------------------------------------------
  
  extern BYTE VueMasterImage44Tiles[];
  extern BYTE VueMasterImage44LMap[];
  extern BYTE VueMasterImage44RMap[];
  
  
  //---------------------------------------------------------------------------------------------------------
  // 												DEFINITIONS
  //---------------------------------------------------------------------------------------------------------
  
  CharSetROMSpec VUE_MASTER_IMAGE_44_CH =
  {
  	// number of chars, depending on allocation type:
  	// __ANIMATED_SINGLE*, __ANIMATED_SHARED*: number of chars of a single animation frame (cols * rows)
  	// __ANIMATED_MULTI, __NOT_ANIMATED: sum of all chars
      2033,
  
      // allocation type
      // (__ANIMATED_SINGLE, __ANIMATED_SINGLE_OPTIMIZED, __ANIMATED_SHARED, __ANIMATED_SHARED_COORDINATED, __ANIMATED_MULTI or __NOT_ANIMATED)
      __NOT_ANIMATED,
  
      // char spec
      VueMasterImage44Tiles,
  };
  
  TextureROMSpec VUE_MASTER_IMAGE_44_LEFT_TX =
  {
      // charset spec
      (CharSetSpec*)&VUE_MASTER_IMAGE_44_CH,
  
      // bgmap spec
      VueMasterImage44LMap,
  
      // cols (max 64)
      48,
  
      // rows (max 64)
      28,
  
      // padding for affine/hbias transformations (cols, rows)
  	{0, 0},
  
  	// number of frames, depending on charset's allocation type:
      // __ANIMATED_SINGLE, _SHARED, _SHARED_COORDINATED, __NOT_ANIMATED: 1
      // __ANIMATED_MULTI: total number of frames
      1,
  
      // palette number (0-3)
      0,
  
  	// recyclable
  	true,
  };
  
  TextureROMSpec VUE_MASTER_IMAGE_44_RIGHT_TX =
  {
      // charset spec
      (CharSetSpec*)&VUE_MASTER_IMAGE_44_CH,
  
      // bgmap spec
      VueMasterImage44RMap,
  
      // cols (max 64)
      48,
  
      // rows (max 64)
      28,
  
      // padding for affine/hbias transformations (cols, rows)
  	{0, 0},
  
  	// number of frames, depending on charset's allocation type:
      // __ANIMATED_SINGLE, _SHARED, _SHARED_COORDINATED, __NOT_ANIMATED: 1
      // __ANIMATED_MULTI: total number of frames
      1,
  
      // palette number (0-3)
      0,
  
  	// recyclable
  	true,
  };
  
  BgmapSpriteROMSpec VUE_MASTER_IMAGE_44_LEFT_SPRITE =
  {
      {
          // sprite's type
          __TYPE(BgmapSprite),
  
          // texture spec
          (TextureSpec*)&VUE_MASTER_IMAGE_44_LEFT_TX,
  
  		// transparent (__TRANSPARENCY_NONE, __TRANSPARENCY_EVEN or __TRANSPARENCY_ODD)
  		__TRANSPARENCY_NONE,
  
          // displacement
          {0, 0, 0, 0},
      },
  
  	// bgmap mode (__WORLD_BGMAP, __WORLD_AFFINE, __WORLD_OBJ or __WORLD_HBIAS)
  	__WORLD_BGMAP,
  
  	// pointer to affine/hbias manipulation function
  	NULL,
  
  	// display mode (__WORLD_ON, __WORLD_LON or __WORLD_RON)
  	__WORLD_LON,
  };
  
  BgmapSpriteROMSpec VUE_MASTER_IMAGE_44_RIGHT_SPRITE =
  {
      {
          // sprite's type
          __TYPE(BgmapSprite),
  
          // texture spec
          (TextureSpec*)&VUE_MASTER_IMAGE_44_RIGHT_TX,
  
  		// transparent (__TRANSPARENCY_NONE, __TRANSPARENCY_EVEN or __TRANSPARENCY_ODD)
  		__TRANSPARENCY_NONE,
  
          // displacement
          {0, 0, 0, 0},
      },
  
  	// bgmap mode (__WORLD_BGMAP, __WORLD_AFFINE, __WORLD_OBJ or __WORLD_HBIAS)
  	__WORLD_BGMAP,
  
  	// pointer to affine/hbias manipulation function
  	NULL,
  
  	// display mode (__WORLD_ON, __WORLD_LON or __WORLD_RON)
  	__WORLD_RON,
  };
  
  BgmapSpriteROMSpec* const VUE_MASTER_IMAGE_44_SPRITES[] =
  {
  	&VUE_MASTER_IMAGE_44_LEFT_SPRITE,
  	&VUE_MASTER_IMAGE_44_RIGHT_SPRITE,
  	NULL
  };
  
  VueMasterImageROMSpec VUE_MASTER_IMAGE_44_EN =
  {
  	// animated entity spec
  	{
  		{
  			// class allocator
  			__TYPE(AnimatedEntity),
  
  			// behaviors 
  			NULL,
  
  			// sprites
  			(SpriteSpec**)VUE_MASTER_IMAGE_44_SPRITES,
  
  			// collision shapes
  			(ShapeSpec*)NULL,
  
  			// size
  			// if 0, width and height will be inferred from the first sprite's texture's size
  			{0, 0, 0},
  
  			// gameworld's character's type
  			kNoType,
  
  			// physical specification
  			(PhysicalSpecification*)NULL,
  		},
  
  		// pointer to the animation spec for the item
  		(AnimationDescription*)NULL,
  
  		// initial animation
  		NULL
  	},
  
  	// colors config
  	{
  		// background color
  		__COLOR_BLACK,
  
  		// brightness
  		// these values times the repeat values specified in the column table (max. 16) make the final
  		// brightness values on the respective regions of the screen. maximum brightness is 128.
  		{
  			// dark red
  			__BRIGHTNESS_DARK_RED,
  			// medium red
  			__BRIGHTNESS_MEDIUM_RED,
  			// bright red
  			__BRIGHTNESS_BRIGHT_RED,
  		},
  
  		// brightness repeat
  		(BrightnessRepeatSpec*)NULL,
  	},
  };
  
  
  #endif
  