| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 |
- GetObjectAttachObject(objectid) {
- if( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] == ID_TYPE_OBJECT ) {
- return g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID];
- }
- return INVALID_OBJECT_ID;
- }
- GetObjectAttachVehicle(objectid) {
- if( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] == ID_TYPE_VEHICLE ) {
- return g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID];
- }
- return INVALID_VEHICLE_ID;
- }
- MigrateObjectMaterialIndexData(from_objectid, to_objectid, materialindex) {
- switch( g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] ) {
- case MATERIALINDEX_TYPE_TEXTURE: {
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- }
- case MATERIALINDEX_TYPE_TEXT: {
- strunpack(g_ObjectTextString, g_ObjectText[from_objectid-1][materialindex], MAX_OBJECT_TEXT+1);
- strunpack(g_FontString, g_ObjectFont[from_objectid-1][materialindex], MAX_FONTNAME_LEN+1);
- strpack(g_ObjectText[to_objectid-1][materialindex], g_ObjectTextString, MAX_OBJECT_TEXT+1);
- strpack(g_ObjectFont[to_objectid-1][materialindex], g_FontString, MAX_FONTNAME_LEN+1);
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_SIZE][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_SIZE][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_ISBOLD][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_ISBOLD][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_ALIGNMENT][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_ALIGNMENT][materialindex];
- }
- default: {
- return 0;
- }
- }
- g_ObjectData[to_objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] = g_ObjectData[from_objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex];
- return 1;
- }
- MigrateObjectAttachData(from_objectid, to_objectid, attachtoid) {
- switch( g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_IDTYPE] ) {
- case ID_TYPE_OBJECT, ID_TYPE_VEHICLE: {
- }
- default: {
- return 0;
- }
- }
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_IDTYPE] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_IDTYPE];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_ID] = attachtoid;
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_X] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_X];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_Y] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_Y];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_Z] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_Z];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_RX] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_RX];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_RY] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_RY];
- g_ObjectData[to_objectid-1][OBJECT_DATA_ATTACH_RZ] = g_ObjectData[from_objectid-1][OBJECT_DATA_ATTACH_RZ];
- return 1;
- }
- DefaultObjectMaterialIndexData(objectid, materialindex) {
- switch( g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] ) {
- case MATERIALINDEX_TYPE_TEXTURE: {
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex] = INVALID_TEXTURE_ID;
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex] = 0x0;
- }
- case MATERIALINDEX_TYPE_TEXT: {
- strpack(g_ObjectText[objectid-1][materialindex], "Example Text", MAX_OBJECT_TEXT+1);
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_SIZE][materialindex] = OBJECT_MATERIAL_SIZE_256x128;
- strpack(g_ObjectFont[objectid-1][materialindex], "Arial", MAX_FONTNAME_LEN+1);
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex] = 24;
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ISBOLD][materialindex] = true;
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex] = 0xFFFFFFFF;
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex] = 0x0;
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ALIGNMENT][materialindex] = 0;
- }
- }
- }
- ApplyObjectMaterialIndexData(objectid, materialindex) {
- switch( g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] ) {
- case MATERIALINDEX_TYPE_TEXTURE: {
- new
- textureid = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex],
- modelid
- ;
- GetTextureData(textureid, modelid, g_TextureTXDString, sizeof g_TextureTXDString, g_TextureNameString, sizeof g_TextureNameString);
- SetObjectMaterial(objectid, materialindex, modelid, g_TextureTXDString, g_TextureNameString, g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex]);
- }
- case MATERIALINDEX_TYPE_TEXT: {
- strunpack(g_ObjectTextString, g_ObjectText[objectid-1][materialindex], MAX_OBJECT_TEXT+1);
- strunpack(g_FontString, g_ObjectFont[objectid-1][materialindex], MAX_FONTNAME_LEN+1);
- SetObjectMaterialText(objectid,
- g_ObjectTextString,
- materialindex,
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_SIZE][materialindex],
- g_FontString,
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex],
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ISBOLD][materialindex],
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex],
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex],
- g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ALIGNMENT][materialindex]
- );
- }
- default: {
- return 0;
- }
- }
- return 1;
- }
- ApplyObjectAttachData(objectid) {
- switch( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] ) {
- case ID_TYPE_OBJECT: {
- AttachObjectToObject(objectid,
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_X],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Y],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Z],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RX],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RY],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RZ]
- );
- }
- case ID_TYPE_VEHICLE: {
- AttachObjectToVehicle(objectid,
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_X],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Y],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Z],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RX],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RY],
- g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RZ]
- );
- }
- default: {
- return 0;
- }
- }
- return 1;
- }
- CopyObject(copy_objectid, bool:copy_attachto = true) {
- if( !IsValidObject(copy_objectid) ) {
- return INVALID_OBJECT_ID;
- }
- new
- modelid = GetObjectModel(copy_objectid),
- Float: x,
- Float: y,
- Float: z,
- Float: rx,
- Float: ry,
- Float: rz,
- attachtoid = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_ID],
- bool: isvalid_attachto_object,
- bool: isvalid_attachto_vehicle
- ;
- switch( g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_IDTYPE] ) {
- case ID_TYPE_OBJECT: {
- isvalid_attachto_object = IsValidObject(attachtoid) ? true : false;
- }
- case ID_TYPE_VEHICLE: {
- isvalid_attachto_vehicle = IsValidVehicle(attachtoid) ? true : false;
- }
- }
- if( isvalid_attachto_object || isvalid_attachto_vehicle ) {
- new
- Float: att_x,
- Float: att_y,
- Float: att_z,
- Float: att_rx,
- Float: att_ry,
- Float: att_rz,
- Float: off_x,
- Float: off_y,
- Float: off_z,
- Float: off_rx,
- Float: off_ry,
- Float: off_rz
- ;
- if( isvalid_attachto_object ) {
- GetObjectPos(attachtoid, att_x, att_y, att_z);
- GetObjectRot(attachtoid, att_rx, att_ry, att_rz);
- } else if( isvalid_attachto_vehicle ) {
- GetVehiclePos(attachtoid, att_x, att_y, att_z);
- GetVehicleZAngle(attachtoid, att_rz);
- }
- off_x = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_X ];
- off_y = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_Y ];
- off_z = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_Z ];
- off_rx = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_RX];
- off_ry = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_RY];
- off_rz = g_ObjectData[copy_objectid-1][OBJECT_DATA_ATTACH_RZ];
- PositionFromOffset(
- att_x,
- att_y,
- att_z,
- att_rx,
- att_ry,
- att_rz,
- off_x,
- off_y,
- off_z,
- x,
- y,
- z
- );
- rx = att_rx + off_rx;
- ry = att_ry + off_ry;
- rz = att_rz + off_rz;
- } else {
- GetObjectPos(copy_objectid, x, y, z);
- GetObjectRot(copy_objectid, rx, ry, rz);
- }
- new paste_objectid = CreateObject(modelid, x, y, z, rx, ry, rz);
- if( paste_objectid == INVALID_OBJECT_ID ) {
- return INVALID_OBJECT_ID;
- }
- for(new materialindex; materialindex < MAX_OBJECT_INDEX; materialindex ++) {
- if( MigrateObjectMaterialIndexData(copy_objectid, paste_objectid, materialindex) ) {
- ApplyObjectMaterialIndexData(paste_objectid, materialindex);
- }
- }
- strunpack(g_CommentString, g_ObjectData[copy_objectid-1][OBJECT_DATA_COMMENT], sizeof g_CommentString); // Copy Comment
- strpack(g_ObjectData[paste_objectid-1][OBJECT_DATA_COMMENT], g_CommentString, sizeof g_CommentString); // Paste Comment
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_X ] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_X ];
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_Y ] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_Y ];
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_Z ] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_Z ];
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_RX] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_RX];
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_RY] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_RY];
- g_ObjectData[paste_objectid-1][OBJECT_DATA_MEMORY_RZ] = g_ObjectData[copy_objectid-1][OBJECT_DATA_MEMORY_RZ];
- if( copy_attachto ) {
- if( MigrateObjectAttachData(copy_objectid, paste_objectid, attachtoid) ) {
- ApplyObjectAttachData(paste_objectid);
- }
- }
- return paste_objectid;
- }
- RecreateObject(copy_objectid, bool:copy_attachto = true) {
- new paste_objectid = CopyObject(copy_objectid, copy_attachto);
- if( paste_objectid != INVALID_OBJECT_ID ) {
- TransferObjectAttachments(copy_objectid, paste_objectid);
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( !IsPlayerConnected(playerid) ) {
- continue;
- }
- if( GetPlayerEditObject(playerid) == copy_objectid ) {
- g_PlayerData[playerid][PLAYER_DATA_EDIT_ID] = paste_objectid;
- }
- if( g_PlayerData[playerid][PLAYER_DATA_EDIT_ATTACHOBJECT] == copy_objectid ) {
- g_PlayerData[playerid][PLAYER_DATA_EDIT_ATTACHOBJECT] = paste_objectid;
- }
- if( g_PlayerData[playerid][PLAYER_DATA_EDIT_MATERIALOBJ] == copy_objectid ) {
- g_PlayerData[playerid][PLAYER_DATA_EDIT_MATERIALOBJ] = paste_objectid;
- }
- for(new row; row < MAX_SELECTLIST_ROWS; row ++) {
- if( copy_objectid != g_SelectObjListData[playerid][SELECTLIST_DATA_ROW_ID][row] ) {
- continue;
- }
- g_SelectObjListData[playerid][SELECTLIST_DATA_ROW_ID][row] = paste_objectid;
- if( g_PlayerData[playerid][PLAYER_DATA_TDMODE] == TDMODE_SELECTLIST_OBJECT ) {
- ApplySelectListRowData(playerid, row);
- }
- }
- }
- DestroyObject(copy_objectid);
- }
- return paste_objectid;
- }
- CopyObjectAttachments(from_objectid, to_objectid) {
- for(new loop_objectid = 1; loop_objectid <= MAX_OBJECTS; loop_objectid ++) {
- if( !IsValidObject(loop_objectid) || loop_objectid == from_objectid || loop_objectid == to_objectid ) {
- continue;
- }
- if( GetObjectAttachObject(loop_objectid) != from_objectid ) {
- continue;
- }
- new paste_objectid = CopyObject(loop_objectid, .copy_attachto = false);
- if( paste_objectid == INVALID_OBJECT_ID ) {
- return 0;
- }
- if( MigrateObjectAttachData(.from_objectid = loop_objectid, .to_objectid = paste_objectid, .attachtoid = to_objectid) ) {
- ApplyObjectAttachData(paste_objectid);
- }
- }
- return 1;
- }
- TransferObjectAttachments(from_objectid, to_objectid) {
- for(new loop_objectid = 1; loop_objectid <= MAX_OBJECTS; loop_objectid ++) {
- if( !IsValidObject(loop_objectid) || loop_objectid == from_objectid || loop_objectid == to_objectid ) {
- continue;
- }
- if( GetObjectAttachObject(loop_objectid) == from_objectid ) {
- g_ObjectData[loop_objectid-1][OBJECT_DATA_ATTACH_ID] = to_objectid;
- ApplyObjectAttachData(loop_objectid);
- }
- }
- }
- ShowObjectDialog(playerid, dialogid) {
- switch( dialogid ) {
- case DIALOGID_OBJECT_MAIN: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- g_DialogInfo = "";
- for(new listitem; listitem < MAX_LISTITEMS_OBJECT; listitem ++) {
- switch(listitem) {
- case LISTITEM_OBJECT_GOTO: {
- strcat(g_DialogInfo, "Goto\t \n");
- }
- case LISTITEM_OBJECT_GET: {
- strcat(g_DialogInfo, "Get\t \n");
- }
- case LISTITEM_OBJECT_COORD: {
- if( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] == ID_TYPE_NONE ) {
- strcat(g_DialogInfo, "Coordinates & Rotation\t \n");
- } else {
- strcat(g_DialogInfo, "Offset & Rotation\t \n");
- }
- }
- case LISTITEM_OBJECT_MOVE: {
- if( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] == ID_TYPE_NONE ) {
- strcat(g_DialogInfo, "Click & Drag Move\t \n");
- } else {
- strcat(g_DialogInfo, "Toggle Offset Editor\t \n");
- }
- }
- case LISTITEM_OBJECT_ATTACH_SELECT: {
- strcat(g_DialogInfo, "Select as Attachment\t \n");
- }
- case LISTITEM_OBJECT_ATTACH_APPLY: {
- new attachobject = g_PlayerData[playerid][PLAYER_DATA_EDIT_ATTACHOBJECT];
- if( !IsValidObject(attachobject) || attachobject == objectid ) {
- strcat(g_DialogInfo, " \t \n");
- } else {
- strunpack(g_CommentString, g_ObjectData[attachobject-1][OBJECT_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Attach Selected Object\t%s\n", g_CommentString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- }
- case LISTITEM_OBJECT_ATTACH_REMOVE: {
- switch( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] ) {
- case ID_TYPE_OBJECT: {
- new attachobject = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID];
- strunpack(g_CommentString, g_ObjectData[attachobject-1][OBJECT_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Un-Attach from Object\t%s\n", g_CommentString );
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- case ID_TYPE_VEHICLE: {
- new attachvehicle = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_ID];
- strunpack(g_CommentString, g_VehicleData[attachvehicle-1][VEHICLE_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Un-Attach from Vehicle\t%s\n", g_CommentString );
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- default: {
- strcat(g_DialogInfo, "Attempt to Un-Attach\t \n");
- }
- }
- }
- case LISTITEM_OBJECT_MATERIALS_COPY: {
- strcat(g_DialogInfo, "Select Material Data\t \n");
- }
- case LISTITEM_OBJECT_MATERIALS_PASTE: {
- new copy_from_objectid = g_PlayerData[playerid][PLAYER_DATA_EDIT_MATERIALOBJ];
- if( !IsValidObject(copy_from_objectid) || objectid == copy_from_objectid ) {
- strcat(g_DialogInfo, " \t \n");
- } else {
- strunpack(g_CommentString, g_ObjectData[copy_from_objectid-1][OBJECT_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Paste Material Data from\t%s\n", g_CommentString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- }
- case LISTITEM_OBJECT_DUPLICATE: {
- strcat(g_DialogInfo, "Duplicate\t \n");
- }
- case LISTITEM_OBJECT_RECREATE: {
- strcat(g_DialogInfo, "Recreate\t \n");
- }
- case LISTITEM_OBJECT_REMOVE: {
- strcat(g_DialogInfo, "Remove\t \n");
- }
- case LISTITEM_OBJECT_COMMENT: {
- strunpack(g_CommentString, g_ObjectData[objectid-1][OBJECT_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Comment\t%s\n", g_CommentString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- case LISTITEM_OBJECT_COMMENT_RESET: {
- GetModelName(GetObjectModel(objectid), g_ModelString, sizeof g_ModelString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Reset Comment To\t%s\n", g_ModelString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- case LISTITEM_OBJECT_INDEX_START..LISTITEM_OBJECT_INDEX_END: {
- new materialindex = listitem - LISTITEM_OBJECT_INDEX_START;
- switch( g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] ) {
- case MATERIALINDEX_TYPE_TEXTURE: {
- new
- textureid = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex],
- color_argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex],
- color_rgb = ARGBtoRGB(color_argb)
- ;
- if( textureid == INVALID_TEXTURE_ID ) {
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Material Index %i\t{%06x}Color\n", materialindex, color_rgb);
- } else {
- new modelid;
- GetTextureData(textureid, modelid, g_TextureTXDString, sizeof g_TextureTXDString, g_TextureNameString, sizeof g_TextureNameString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Material Index %i\t{%06x}%i %s %s\n", materialindex, color_rgb, modelid, g_TextureTXDString, g_TextureNameString);
- }
- }
- case MATERIALINDEX_TYPE_TEXT: {
- new
- color_argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex],
- color_rgb = ARGBtoRGB(color_argb)
- ;
- strunpack(g_ObjectTextString, g_ObjectText[objectid-1][materialindex], sizeof g_ObjectTextString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Material Index %i\t{%06x}%s\n", materialindex, color_rgb, g_ObjectTextString);
- }
- default: {
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Material Index %i\tDefault / Unknown\n", materialindex);
- }
- }
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- default: {
- strcat(g_DialogInfo, " \t \n");
- }
- }
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_TABLIST, "Object", g_DialogInfo, "Select", "Cancel");
- }
- case DIALOGID_OBJECT_INDEX: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- new
- materialindex = g_PlayerData[playerid][PLAYER_DATA_EDIT_OBJMATIDX],
- indextype = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex]
- ;
- format(g_DialogCaption, sizeof g_DialogCaption, "Material Index: %i", materialindex);
- g_DialogInfo = "";
- for(new listitem; listitem < MAX_LISTITEMS_OINDEX; listitem ++) {
- switch(listitem) {
- case LISTITEM_OINDEX_REMOVE: {
- strcat(g_DialogInfo, "All\tReset Material Index\t-\n");
- }
- case LISTITEM_OINDEX_MAT: {
- if( indextype == MATERIALINDEX_TYPE_TEXTURE ) {
- new
- textureid = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TEXTURE][materialindex],
- modelid
- ;
- GetTextureData(textureid, modelid, g_TextureTXDString, sizeof g_TextureTXDString, g_TextureNameString, sizeof g_TextureNameString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Texture\tTexture\t%i %s %s\n", modelid, g_TextureTXDString, g_TextureNameString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Texture\tTexture\t-\n");
- }
- }
- case LISTITEM_OINDEX_MAT_COLOR_S: {
- if( indextype == MATERIALINDEX_TYPE_TEXTURE ) {
- new argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Texture\tColor\t{%06x}Color\n", ARGBtoRGB(argb) );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Texture\tColor\t-\n");
- }
- }
- case LISTITEM_OINDEX_MAT_COLOR_A: {
- if( indextype == MATERIALINDEX_TYPE_TEXTURE ) {
- new argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Texture\tAlpha\t%i/%i\n", ARGBtoA(argb), 0xFF );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Texture\tAlpha\t-\n");
- }
- }
- case LISTITEM_OINDEX_MAT_COLOR_R: {
- strcat(g_DialogInfo, "Texture\tReset Color\t-\n");
- }
- case LISTITEM_OINDEX_TXT: {
- if( indextype == MATERIALINDEX_TYPE_TEXT ) {
- strunpack(g_ObjectTextString, g_ObjectText[objectid-1][materialindex], MAX_OBJECT_TEXT+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tString\t%s\n", g_ObjectTextString );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tString\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_MATSIZE: {
- if( indextype == MATERIALINDEX_TYPE_TEXT ) {
- new materialsize = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_SIZE][materialindex];
- GetMaterialSizeName(materialsize, g_MaterialSizeString, sizeof g_MaterialSizeString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tMaterial Size\t%s\n", g_MaterialSizeString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tMaterial Size\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_FONTFACE: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- strunpack(g_FontString, g_ObjectFont[objectid-1][materialindex], MAX_FONTNAME_LEN+1);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Face\t%s\n", g_FontString );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Face\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_FONTSIZE: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- new fontsize = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Size\t%i\n", fontsize );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Size\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_ISBOLD: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Bold\t%s\n", g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ISBOLD][materialindex] ? ("Yes") : ("No") );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Bold\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_ALIGN: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- new alignment = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_ALIGNMENT][materialindex];
- GetAlignmentName(alignment, g_MaterialAlignString, sizeof g_MaterialAlignString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Alignment\t%s\n", g_MaterialAlignString );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Alignment\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_FONTCOLOR_S: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- new fontcolor = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Color\t{%06x}Color\n", ARGBtoRGB( fontcolor ) );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Color\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_FONTCOLOR_A: {
- if(indextype == MATERIALINDEX_TYPE_TEXT) {
- new fontcolor = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tFont Alpha\t%i/%i\n", ARGBtoA( fontcolor ), 0xFF);
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tFont Alpha\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_BACKCOLOR_S: {
- if( indextype == MATERIALINDEX_TYPE_TEXT ) {
- new argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Text\tBackground Color\t{%06x}Color\n", ARGBtoRGB( argb ) );
- strcat(g_DialogInfo, g_DialogInfoRow);
- } else {
- strcat(g_DialogInfo, "Text\tBackground Color\t-\n");
- }
- }
- case LISTITEM_OINDEX_TXT_BACKCOLOR_O: {
- strcat(g_DialogInfo, "Text\tBackground Opaque\t-\n");
- }
- case LISTITEM_OINDEX_TXT_BACKCOLOR_T: {
- strcat(g_DialogInfo, "Text\tBackground Transparent\t-\n");
- }
- default: {
- strcat(g_DialogInfo, "-\t-\t-\n");
- }
- }
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_TABLIST, g_DialogCaption, g_DialogInfo, "Select", "Cancel");
- }
- case DIALOGID_OBJECT_COORD: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- new Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz;
- if( g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] == ID_TYPE_NONE ) {
- GetObjectPos(objectid, x, y, z);
- GetObjectRot(objectid, rx, ry, rz);
- } else {
- x = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_X];
- y = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Y];
- z = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Z];
- rx = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RX];
- ry = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RY];
- rz = g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RZ];
- }
- g_DialogInfo = "";
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "x \t%f\n", x ), strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "y \t%f\n", y ), strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "z \t%f\n", z ), strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "rx\t%f\n", rx), strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "ry\t%f\n", ry), strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "rz\t%f\n", rz), strcat(g_DialogInfo, g_DialogInfoRow);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Object Coordinates", g_DialogInfo, "Enter", "Cancel");
- }
- case DIALOGID_OBJECT_COMMENT: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- strunpack(g_CommentString, g_ObjectData[objectid-1][OBJECT_DATA_COMMENT], MAX_COMMENT_LEN+1);
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Comment: %s", g_CommentString);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Object Comment", g_DialogInfo, "Enter", "Cancel");
- }
- case DIALOGID_OBJECT_MATSIZE: {
- g_DialogInfo = "";
- for(new i; i < MAX_MATERIAL_SIZES; i ++) {
- new materialsize = (i + 1) * 10;
- GetMaterialSizeName(materialsize, g_MaterialSizeString, sizeof g_MaterialSizeString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "%i\t%s\n", materialsize, g_MaterialSizeString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_TABLIST, "Material Sizes", g_DialogInfo, "Select", "Cancel");
- }
- case DIALOGID_OBJECT_TEXT: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- new materialindex = g_PlayerData[playerid][PLAYER_DATA_EDIT_OBJMATIDX];
- strunpack(g_ObjectTextString, g_ObjectText[objectid-1][materialindex], MAX_OBJECT_TEXT+1);
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Text: %s", g_ObjectTextString);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Object Text", g_DialogInfo, "Enter", "Cancel");
- }
- case DIALOGID_OBJECT_FONTSIZE: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- new
- materialindex = g_PlayerData[playerid][PLAYER_DATA_EDIT_OBJMATIDX],
- fontsize = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTSIZE][materialindex]
- ;
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Value: %i/%i", fontsize, MAX_OBJECT_FONTSIZE);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Object Font Size", g_DialogInfo, "Enter", "Cancel");
- }
- case DIALOGID_COLORALPHA_TEXTURE, DIALOGID_COLORALPHA_FONTFACE: {
- new objectid = GetPlayerEditObject(playerid);
- if( !IsValidObject(objectid) ) {
- return 1;
- }
- new materialindex = g_PlayerData[playerid][PLAYER_DATA_EDIT_OBJMATIDX];
- switch( dialogid ) {
- case DIALOGID_COLORALPHA_TEXTURE: {
- g_DialogCaption = "Object Material Alpha";
- if( g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] == MATERIALINDEX_TYPE_TEXTURE ) {
- new argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_COLOR][materialindex];
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Value: %i/%i", ARGBtoA( argb ), 0xFF);
- } else {
- g_DialogInfo = "Current Value: none";
- }
- }
- case DIALOGID_COLORALPHA_FONTFACE: {
- g_DialogCaption = "Object Text Alpha";
- if( g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] == MATERIALINDEX_TYPE_TEXT ) {
- new argb = g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_FONTCOLOR][materialindex];
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Value: %i/%i", ARGBtoA( argb ), 0xFF);
- } else {
- g_DialogInfo = "Current Value: none";
- }
- }
- default: {
- return 0;
- }
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, g_DialogCaption, g_DialogInfo, "Enter", "Cancel");
- }
- default: {
- return 0;
- }
- }
- return 1;
- }
- FindObjects(result[], result_size, search[], offset, &max_offset) {
- new
- rows_found,
- rows_added,
- search_int = -1,
- packed_search[MAX_SEARCH_LEN+1 char]
- ;
- sscanf(search, "i", search_int);
- strpack(packed_search, search);
- for(new objectid = 1, modelid, cache_index; objectid <= MAX_OBJECTS; objectid ++) {
- if( !IsValidObject(objectid) ) {
- continue;
- }
- modelid = GetObjectModel(objectid);
- cache_index = GetModelCacheIndex(modelid);
- if(
- isempty(search) ||
- search_int == objectid ||
- search_int == modelid ||
- strfind(g_ObjectData[objectid-1][OBJECT_DATA_COMMENT], packed_search, true) != -1 ||
- ( cache_index != INVALID_ARRAY_INDEX && strfind(g_ModelCache[cache_index][MODEL_CACHE_NAME], packed_search, true) != -1 )
- ) {
- if( rows_found ++ < offset ) {
- continue;
- }
- if( rows_added < result_size ) {
- result[rows_added ++] = objectid;
- }
- }
- }
- max_offset = rows_found - 1;
- if( max_offset < 0 ) {
- max_offset = 0;
- }
- return rows_added;
- }
|