static InputFormRef.ADDR_AND_LENGTH get_cstring_data_pos_callback(uint addr) { int length = 0; string str = Program.ROM.getString(addr, out length); InputFormRef.ADDR_AND_LENGTH aal = new InputFormRef.ADDR_AND_LENGTH(); aal.addr = addr; aal.length = (uint)U.Padding2((uint)length + 1); //nullを入れる. return(aal); }
//道データの長さを求める. static InputFormRef.ADDR_AND_LENGTH get_path_data_length_callback(uint addr) { addr = U.toOffset(addr); uint length = WorldMapPathForm.CalcPathDataLength(addr); InputFormRef.ADDR_AND_LENGTH aal = new InputFormRef.ADDR_AND_LENGTH(); aal.addr = addr; aal.length = length; return(aal); }
private InputFormRef.ADDR_AND_LENGTH get_data_pos_callback(uint addr) { uint length = CalcLength(addr); //範囲外探索 00 00 00 00 が続く限り検索してみる. uint more = MoveToFreeSapceForm.SearchOutOfRange(addr + length); //8バイトアライメント more = (more / 8) * 8; InputFormRef.ADDR_AND_LENGTH aal = new InputFormRef.ADDR_AND_LENGTH(); aal.addr = addr; aal.length = length + more; return(aal); }
private InputFormRef.ADDR_AND_LENGTH get_data_pos_callback(uint addr) { uint length = 0; if (U.isSafetyOffset(addr + 2)) { uint w = Program.ROM.u8(addr + 0); uint h = Program.ROM.u8(addr + 1); length = 4 + (w * h); } InputFormRef.ADDR_AND_LENGTH aal = new InputFormRef.ADDR_AND_LENGTH(); aal.addr = addr; aal.length = length; return(aal); }