Add proto_copy_proto
This commit is contained in:
parent
ccabbd7688
commit
a4daffa30e
28
src/proto.cc
28
src/proto.cc
|
@ -828,6 +828,34 @@ int _proto_dude_init(const char* path)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 0x49FE74
|
||||||
|
int proto_copy_proto(int srcPid, int dstPid)
|
||||||
|
{
|
||||||
|
int srcType;
|
||||||
|
int dstType;
|
||||||
|
Proto* src;
|
||||||
|
Proto* dst;
|
||||||
|
|
||||||
|
srcType = PID_TYPE(srcPid);
|
||||||
|
dstType = PID_TYPE(dstPid);
|
||||||
|
if (srcType != dstType) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protoGetProto(srcPid, &src) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protoGetProto(dstPid, &dst) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(dst, src, _proto_sizes[srcType]);
|
||||||
|
dst->pid = dstPid;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// 0x49FEDC
|
// 0x49FEDC
|
||||||
bool proto_is_subtype(Proto* proto, int subtype)
|
bool proto_is_subtype(Proto* proto, int subtype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -118,6 +118,7 @@ int objectDataWrite(Object* obj, File* stream);
|
||||||
int _proto_update_init(Object* obj);
|
int _proto_update_init(Object* obj);
|
||||||
int _proto_dude_update_gender();
|
int _proto_dude_update_gender();
|
||||||
int _proto_dude_init(const char* path);
|
int _proto_dude_init(const char* path);
|
||||||
|
int proto_copy_proto(int srcPid, int dstPid);
|
||||||
bool proto_is_subtype(Proto* proto, int subtype);
|
bool proto_is_subtype(Proto* proto, int subtype);
|
||||||
int protoGetDataMember(int pid, int member, ProtoDataMemberValue* value);
|
int protoGetDataMember(int pid, int member, ProtoDataMemberValue* value);
|
||||||
int protoInit();
|
int protoInit();
|
||||||
|
|
Loading…
Reference in New Issue