anchor.diff:  		8 -> ?ASSERT_EQ(Param, 0), player_death_return_to_lobby;
   		9 -> ?ASSERT_EQ(Param, 10), ignore; %% @todo
   		10 -> ignore; %% @todo {player_online_status_change, Param};
  -		_ -> log("unknown 0110 EventID ~p", [EventID])
  +		_ -> io:format("unknown 0110 EventID ~p~n", [EventID])
   	end;
   
   parse(Size, 16#020b, Channel, Data) ->
  
positive.code: language_integer_to_atom(7) -> korean;
  language_integer_to_atom(8) -> simplified_chinese;
  language_integer_to_atom(9) -> traditional_chinese;
  language_integer_to_atom(Language) -> log("unknown 080e Language ~p", [Language]).
  
  %% @doc Prepare a packet. Return the real size and padding at the end.
  packet_prepare(Packet) ->
  
negative.code: 
  -include("include/records.hrl").
  
  %% @spec assert() -> ok
  %% @doc Log a detailed message when the function is called.
  -define(ASSERT(), io:format("assert error in module ~p on line ~p~n", [?MODULE, ?LINE])).
  
  %% @spec assert(A, B) -> ok
  %% @doc Log a detailed message when the assertion A =:= B fails.
  -define(ASSERT_EQ(A, B), if A =:= B -> ok; true -> io:format("assert error in module ~p on line ~p~n", [?MODULE, ?LINE]) end).
  
  %% @spec parse(Packet) -> Result
  %% @doc Parse the packet and return a result accordingly.
  