>>42283220I am a programmer, and it can literally be done in a few lines, depending on how the rendering engine is set up and what language you're using. Something like
if(pokemon.CheckShinyFlag() == true)
RenderPokemon(pokemon, shinyTexture)
else
RenderPokemon(pokemon.GetIndexNumber(), normalTexture)
Where pokemon is whatever data structure they use to store all of a pokemon's data and functions, CheckShinyFlag() is a method of pokemon that returns true or false after a simple bitwise & of a the variable that contains the flag (because nobody would be stupid enough to waste an entire byte to store a simple 0/1 value for every pokemon the player has or encounters) and a constant to tell it which bit in the variable to check, RenderPokemon is a function that takes a pokemon's index number(not national dex# but where that form of the species falls on the list) so it can grab the model for that pokemon from the vector of pokemon models, and another variable probably an integer to tell it which set of textures associated with the model to use before sending that data to the rendering engine to handle the draw call.
Obviously there's a few edge cases where it would need to be a bit more complex than that unless you want to be super wasteful with your memory and overall file sizes, but that's really all it needs.