/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   data_assets.h                                      :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: mcolonna <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2024/02/29 17:43:01 by mcolonna          #+#    #+#             */
/*   Updated: 2024/04/21 17:53:15 by mcolonna         ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#ifndef DATA_ASSETS_H
# define DATA_ASSETS_H

# define NB_ASSETS 124

typedef struct s_assetmeta
{
	t_const_string	src;
	int				limit_left;
	int				limit_right;
	int				limit_up;
	int				limit_down;
	bool			opaque;
}	t_assetmeta;

/**
 * Index for each asset. Must be in the same order than g_consts.assetsmap.
 * The frames of an animation must be together and sorted.
 * The images of an object with directions must be in this order:
 *   down, up, left, right
 */
typedef enum e_assetsmap_id
{
	FLOOR_1,
	FLOOR_2,
	WALL_BORDER_TOP,
	WALL_BORDER_BOTTOM,
	WALL_INNER,
	BRIDGE,
	OBJECT_SNAS_DOWN,
	OBJECT_SNAS_UP,
	OBJECT_SNAS_LEFT,
	OBJECT_SNAS_RIGHT,
	OBJECT_SNAS_WALK_DOWN_1,
	OBJECT_SNAS_WALK_DOWN_2,
	OBJECT_SNAS_WALK_DOWN_3,
	OBJECT_SNAS_WALK_DOWN_4,
	OBJECT_SNAS_WALK_RIGHT_1,
	OBJECT_SNAS_WALK_RIGHT_2,
	OBJECT_SNAS_WALK_LEFT_1,
	OBJECT_SNAS_WALK_LEFT_2,
	OBJECT_SNAS_WALK_UP_1,
	OBJECT_SNAS_WALK_UP_2,
	OBJECT_SNAS_WALK_UP_3,
	OBJECT_SNAS_WALK_UP_4,
	OBJECT_KETCHUP_STILL_1,
	OBJECT_KETCHUP_STILL_2,
	OBJECT_KETCHUP_STILL_3,
	OBJECT_KETCHUP_STILL_4,
	OBJECT_KETCHUP_FADE_1,
	OBJECT_KETCHUP_FADE_2,
	OBJECT_KETCHUP_FADE_3,
	OBJECT_EXIT_INACTIVE_1,
	OBJECT_EXIT_INACTIVE_2,
	OBJECT_EXIT_ACTIVE_1,
	OBJECT_EXIT_ACTIVE_2,
	OBJECT_EXIT_ACTIVE_3,
	OBJECT_EXIT_ACTIVE_4,
	OBJECT_EXIT_USING1_1,
	OBJECT_EXIT_USING1_2,
	OBJECT_EXIT_USING1_3,
	OBJECT_EXIT_USING1_4,
	OBJECT_EXIT_USING2_1,
	OBJECT_EXIT_USING2_2,
	OBJECT_EXIT_USING2_3,
	OBJECT_EXIT_USING2_4,
	OBJECT_EXIT_USING2_5,
	OBJECT_EXIT_USING2_6,
	OBJECT_EXIT_USING2_7,
	OBJECT_EXIT_TP_1,
	OBJECT_EXIT_TP_2,
	OBJECT_EXIT_TP_3,
	OBJECT_EXIT_TP_4,
	OBJECT_EXIT_TP_5,
	OBJECT_EXIT_TP_6,
	OBJECT_EXIT_TP_7,
	OBJECT_EXIT_TP_8,
	OBJECT_EXIT_TP_9,
	OBJECT_FIRSK_DOWN,
	OBJECT_FIRSK_UP,
	OBJECT_FIRSK_LEFT,
	OBJECT_FIRSK_RIGHT,
	OBJECT_FIRSK_WALK_DOWN_1,
	OBJECT_FIRSK_WALK_DOWN_2,
	OBJECT_FIRSK_WALK_DOWN_3,
	OBJECT_FIRSK_WALK_DOWN_4,
	OBJECT_FIRSK_WALK_RIGHT_1,
	OBJECT_FIRSK_WALK_RIGHT_2,
	OBJECT_FIRSK_WALK_LEFT_1,
	OBJECT_FIRSK_WALK_LEFT_2,
	OBJECT_FIRSK_WALK_UP_1,
	OBJECT_FIRSK_WALK_UP_2,
	OBJECT_FIRSK_WALK_UP_3,
	OBJECT_FIRSK_WALK_UP_4,
	OBJECT_ULTIMATEKETCHUP,
	ANIM_KNIFEATTACK_1,
	ANIM_KNIFEATTACK_2,
	ANIM_KNIFEATTACK_3,
	ANIM_KNIFEATTACK_4,
	ANIM_KNIFEATTACK_5,
	ANIM_KNIFEATTACK_6,
	ANIM_KNIFEATTACK_7,
	ANIM_EXPLOSION_PART1_1,
	ANIM_EXPLOSION_PART1_2,
	ANIM_EXPLOSION_PART1_3,
	ANIM_EXPLOSION_PART1_4,
	ANIM_EXPLOSION_PART1_5,
	ANIM_EXPLOSION_PART1_6,
	ANIM_EXPLOSION_PART1_7,
	ANIM_EXPLOSION_PART1_8,
	ANIM_EXPLOSION_PART2_1,
	ANIM_EXPLOSION_PART2_2,
	ANIM_EXPLOSION_PART2_3,
	ANIM_EXPLOSION_PART2_4,
	ANIM_EXPLOSION_PART2_5,
	ANIM_EXPLOSION_PART2_6,
	ANIM_EXPLOSION_PART2_7,
	ANIM_EXPLOSION_PART2_8,
	ANIM_EXPLOSION_PART2_9,
	TEXT_LITTLE_0,
	TEXT_LITTLE_1,
	TEXT_LITTLE_2,
	TEXT_LITTLE_3,
	TEXT_LITTLE_4,
	TEXT_LITTLE_5,
	TEXT_LITTLE_6,
	TEXT_LITTLE_7,
	TEXT_LITTLE_8,
	TEXT_LITTLE_9,
	TEXT_LITTLE_PRESSENTERTORETRY,
	TEXT_REGULAR_0,
	TEXT_REGULAR_1,
	TEXT_REGULAR_2,
	TEXT_REGULAR_3,
	TEXT_REGULAR_4,
	TEXT_REGULAR_5,
	TEXT_REGULAR_6,
	TEXT_REGULAR_7,
	TEXT_REGULAR_8,
	TEXT_REGULAR_9,
	TEXT_REGULAR_IN_X_MOVES_1,
	TEXT_REGULAR_IN_X_MOVES_2,
	TEXT_REGULAR_YOUDED,
	TEXT_REGULAR_YOUFOUNDTHEULTIMATEKETCHUP_1,
	TEXT_REGULAR_YOUFOUNDTHEULTIMATEKETCHUP_2,
	TEXT_BIG_YOUWIN,
	TEXT_BIG_GAMEOVER,
}	t_assetsmap_id;

# define OBJECT_SNAS OBJECT_SNAS_DOWN
# define OBJECT_FIRSK OBJECT_FIRSK_DOWN

#endif
