This question might sound silly, but the thing it's that I hit a wall. I found the info on the wiki and also the routine that checks for status to do not engage Learn by hit, but this is where I'm lost.
018e784: 02002021 addu r4,r16,r0
0018e788: 0c01786c jal 0x0005e1b0 check status
0018e78c: 34050004 ori r5,r0,0x0004
0018e790: 14400035 bne r2,r0,0x0018e868 branch status present
If r5= the status set that will be check, how did it determine that was all those status (Blood Suck, Petrify, Confusion, Berserk, Stop, Sleep, Don't Act, Frog, Charm and, of course, Dead, Crystal and Treasure) with only 0004?
Or is there something more complicated than I'm missing due my lack of knowledge? (of course this is the answer)
Thanks in advance.